【发布时间】:2013-06-15 03:09:43
【问题描述】:
我最近一直在向this awesome site 学习haskell,我刚刚在高阶函数一章中了解了将函数作为参数传递。我可以看到将函数作为参数传递是非常有用的,但根据我目前(lowley)的理解,您需要指定此函数中的参数数量,鉴于此函数,这可能非常有限:
--takes a function and returns a function that has flipped arguments
flip' :: (a -> b -> c) -> (b -> a -> c) --very limited
flip' f = g
where g x y = f y x
有用,但仅限于带有两个参数的函数,有没有办法编写一个函数定义来接受具有任意数量参数的函数?我的猜测必须是某种参数列表,但我似乎找不到任何信息。谢谢!
【问题讨论】:
-
为了更快地进入主题:永远记住,每个 Haskell 函数都只有 一个参数!你的双参数函数只是将第一个参数映射到另一个函数的柯里化函数,没有理由不能继续任意数字;
flip不在乎。
标签: function haskell parameters parameter-passing