我目前正在学习函数式编程课程,我对高阶函数和一等公民函数的概念感到很有趣。然而,我还想不出许多实际有用的、概念上令人惊奇的或只是简单有趣的高阶函数。 (除了典型的、相当沉闷的map
, filter
等功能)。
您知道此类有趣函数的示例吗?
也许是返回函数的函数、返回函数列表的函数(?)等等。
我很欣赏 Haskell 中的例子,这是我目前正在学习的语言:)
好吧,您注意到 Haskell 没有 for 循环语法吗?不while
or do
or for
。因为这些都只是高阶函数:
map :: (a -> b) -> [a] -> [b]
foldr :: (a -> b -> b) -> b -> [a] -> b
filter :: (a -> Bool) -> [a] -> [a]
unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
iterate :: (a -> a) -> a -> [a]
高阶函数取代了控制结构语言中内置语法的需要,这意味着几乎每个 Haskell 程序都使用这些函数——这使得它们非常有用!
它们是实现良好抽象的第一步,因为我们现在可以将自定义行为插入通用骨架函数中。
尤其,monads http://book.realworldhaskell.org/read/monads.html之所以可能,是因为我们可以链接在一起并操纵函数来创建程序。
事实上,当生活处于一阶状态时,它是相当无聊的。只有当你拥有更高的阶数时,编程才会变得有趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)