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

SML: Does the function foldl take the list predefined, or list could be accumulated during the process?

下面是一道作业题。不是在寻找答案,而是在寻找澄清

我应该找到第 n 个加泰罗尼亚语数,它基于与我的问题无关的递归关系。

我的问题是:

函数 foldl 接受一个函数、一个累加器和一个列表

当我应用 foldl 时,它看起来像这样 foldl function_name initial_value_for_accumulator 列表

我们的教授在问题中说了以下内容:

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

Foldl 必须拿一个列表。所以,问题是:我能否传递在递归过程中建立的列表?或者我必须计算列表然后将其传递给 foldl?

同时使用递归和 foldl 是不常见的,尤其是在基础练习中。我相信教授告诉你使用 foldl 而不是 递归。

如您所述,这需要您定义一个列表并将其传递给 foldl。通常,如果您需要遍历从 1n 的数字,您可以从这些数字的列表开始。