在 Purescript 中可以进行默认编程吗?
Is tacit programming possible in Purescript?
默认编程是否也称为无点样式,请参阅例如http://en.wikipedia.org/wiki/Tacit_programming Purescript 中的一个选项?
看看 PureScript Prelude source,我会这样说:
instance functorFn :: Functor ((->) r) where
map = compose -- point-free!
您在 http://try.purescript.org/?session=3538ae1c-eece-8f50-ad0c-e1504846a793 中的示例:
foldr f z Nil = 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:Nil) -- prints: 10
(需要自己定义foldr,因为我无法导入任何模块)
默认编程是否也称为无点样式,请参阅例如http://en.wikipedia.org/wiki/Tacit_programming Purescript 中的一个选项?
看看 PureScript Prelude source,我会这样说:
instance functorFn :: Functor ((->) r) where
map = compose -- point-free!
您在 http://try.purescript.org/?session=3538ae1c-eece-8f50-ad0c-e1504846a793 中的示例:
foldr f z Nil = 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:Nil) -- prints: 10
(需要自己定义foldr,因为我无法导入任何模块)