我需要定义一个名为“Compose”的函数,它接受一个列表'L',其中包含多个函数。当我指定一个适用于列表中所有函数的参数时,最后一个函数将使用此参数进行计算。然后将结果传递给倒数第二个函数,以此类推,直到我们到达列表中的第一个项目(函数),并得到最终结果。
例如,
Compose ((fn N -> N + 1)^(fn N -> 2 * N)^#)3。
将给出答案7。
我必须在一种名为SAL(简单应用语言)的函数式编程语言中编写此代码。如果可以用伪代码表示解决方案,请记住我不能使用循环、变量等。显然,答案是一行代码。我想它涉及到递归(我们99%的任务函数都这样!)。
另外,我不懂Haskell(猜测我得学习!),所以伪代码甚至普通英语也很好。 -
非常感谢。
例如,
Compose ((fn N -> N + 1)^(fn N -> 2 * N)^#)3。
将给出答案7。
我必须在一种名为SAL(简单应用语言)的函数式编程语言中编写此代码。如果可以用伪代码表示解决方案,请记住我不能使用循环、变量等。显然,答案是一行代码。我想它涉及到递归(我们99%的任务函数都这样!)。
另外,我不懂Haskell(猜测我得学习!),所以伪代码甚至普通英语也很好。 -
非常感谢。
compose = foldl (flip (.)) id
。 - HaskellElephantfoldr (.) id
=foldr1 (.)
等等 :) - matt