SML:函数foldl是否采用预定义的列表,或者列表是否可以在此过程中累积?

时间:2015-04-06 04:08:24

标签: haskell functional-programming sml fold smlnj

以下是与家庭作业问题有关。没有找到答案,正在寻找澄清

我应该找到第n个加泰罗尼亚数字,该数字基于与我的问题无关的复发rel。

我的问题是:

函数foldl接受函数,累加器和列表

当我应用foldl时,它看起来就像那样 foldl function_name initial_value_for_accumulator list

我们的教授在问题中说:

实现一个函数Catalan:int -> int,当给定一个整数n时,计算 第n个加泰罗尼亚数字。要获得完整功劳,请在解决方案中使用高阶函数foldl

Foldl必须列出一份清单。所以,问题是:我是否能够传递递归期间正在构建的列表?或者我必须计算列表然后将其传递给foldl?

1 个答案:

答案 0 :(得分:4)

使用递归和foldl是不寻常的,特别是在基本练习中。我相信教授告诉你使用foldl 代替递归。

正如您所说,这需要您定义一个列表并将其传递给foldl。通常,如果您需要将数字从1循环到n,则可以从这些数字列表开始。