[Haskell] flip не переставляет аргументы
От: nikov США http://www.linkedin.com/in/nikov
Дата: 07.06.09 07:20
Оценка: -1
Можете ли вы придумать определение функции f, чтобы выражение
($) f id

успешно проходило типизацию, а
flip ($) id f

вызывало ошибку типов?

Можно использовать языковые расширения GHC.
Re: [Haskell] flip не переставляет аргументы
От: MigMit Россия http://migmit.vox.com
Дата: 07.06.09 08:31
Оценка: +1
N>Можете ли вы придумать определение функции f

Нахрена?
Re: [Haskell] flip не переставляет аргументы
От: Mr.Cat  
Дата: 07.06.09 09:26
Оценка: 16 (2)
Здравствуйте, nikov, Вы писали:
N>Можете ли вы придумать определение функции f, чтобы выражение
N>
N>($) f id
N>

N>успешно проходило типизацию, а
N>
N>flip ($) id f
N>

N>вызывало ошибку типов?
N>Можно использовать языковые расширения GHC.

Типы высших рангов же. Например, пример из викикнижки:
foo :: (forall a. a -> a) -> (Char,Bool)
foo f = (f 'c', f True)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.