2015-05-01 5 views

ответ

3

Глядя на PureScript Prelude source, я бы сказал так:

instance functorFn :: Functor ((->) r) where 
    map = compose -- point-free! 

Ваш пример в http://try.purescript.org:

foldr f z [] = z 
foldr f z (x:xs) = f x (subfold xs) 
    where subfold = foldr f z 

sum = foldr (+) 0 

main = trace $ show $ sum [1,2,3,4] -- prints: 10 

(необходимо определить foldr себя, потому что я не мог импортировать любые модули)

+0

Итак, как бы вы перевели, например, пример Википедии Haskell: «sum = foldr (+) 0»? – v217

+0

@ user22207: см. Мое редактирование, синтаксис точно такой же, как в Haskell. – stholzm