【发布时间】:2014-08-16 16:01:03
【问题描述】:
我刚刚开始我的 Haskell 之旅,直到我遇到柯里化、部分应用程序和高阶函数(即当它开始变得有趣时)我一直在飞行 - 是的,我知道介绍的东西很简单,所以大概是这玩意吧!)
无论如何,这个问题是关于高阶函数的。 这个例子来自一个著名的教程
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
我可以看到它是如何工作的,如果我暂停我的怀疑,我相信我理解它。但是,让我感到困惑的是,为什么这不会递归。当我们重新进入回调函数时调用 f (f x),我们肯定会再次进行模式匹配。我在这里想念什么?
【问题讨论】:
-
递归将在自身内部调用
applyTwice,而不是两次调用参数函数。
标签: haskell recursion higher-order-functions