以下是与家庭作业问题有关。没有找到答案,正在寻找澄清
我应该找到第n个加泰罗尼亚数字,该数字基于与我的问题无关的复发rel。
我的问题是:
函数foldl接受函数,累加器和列表
当我应用foldl时,它看起来就像那样 foldl function_name initial_value_for_accumulator list
我们的教授在问题中说:
实现一个函数Catalan:int -> int
,当给定一个整数n
时,计算
第n个加泰罗尼亚数字。要获得完整功劳,请在解决方案中使用高阶函数foldl
。
Foldl必须列出一份清单。所以,问题是:我是否能够传递递归期间正在构建的列表?或者我必须计算列表然后将其传递给foldl?
答案 0 :(得分:4)
使用递归和foldl
是不寻常的,特别是在基本练习中。我相信教授告诉你使用foldl
代替递归。
正如您所说,这需要您定义一个列表并将其传递给foldl
。通常,如果您需要将数字从1
循环到n
,则可以从这些数字列表开始。