【发布时间】:2016-04-20 17:37:34
【问题描述】:
如何使用其中一个折叠函数来生成从 0 到值 n-1 的整数列表?我对如何让 fold_right 返回一个列表而不是只返回一个累积值感到困惑。
这是一个帮助函数,我试图定义它来解决更大的问题。这是我的尝试:
-我知道基本情况必须是一个仅包含零的列表,因为我不想添加任何小于零的内容。
-我知道我需要减少 n 的值,以便我可以将 n-1 到 0 的数字放入列表中。
let buildList n =
let ibuildList elem list =
list@[n-1]
in List.fold_right ibuildList n [0];;
但我得到一个错误,在最后一行中用“n”下划线表示表达式的类型为 int,但表达式的类型应为 'a list。 n 不是我通过 [n-1] 变成列表的整数吗?我哪里做错了?
【问题讨论】: