list - 在 ocaml 中构建整数列表

标签 list ocaml int

我想编写一个函数,在两个整数之间构建一个列表,包括

rec myFunc x y 将构建一个列表,其中包含 x 和 y 之间的所有整数,包括 x 和 y

对于现在的逻辑,我有这样的事情:

let rec buildList i n = let x = i+1 in if i <= n then i::(buildList x n)

但这给了我一个错误“表达式的类型为'一个列表,但需要一个单元类型的表达式。

我认为 buildList 正在返回一个整数列表,而 i 作为一个整数,所以 cons 运算符将是有效的,但它说它应该是无效的?

为什么会发生这种情况,我该如何解决?

最佳答案

如果条件为真,则返回列表 i::(buildList x n) .如果它不是真的,你会返回什么?

添加 else []到您的函数以在不满足条件时返回空列表。
当您没有 else ,编译器假设它是 else () (因此出现错误消息)。

关于list - 在 ocaml 中构建整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5653739/

相关文章:

python - 如何从列表列表中提取所有唯一组合

macos - 为什么在 OCaml 搜索路径上找不到 3rd 方库?

html - 使用 OCaml 解析 HTML

c# - 将字符串列表转换为相应的int c#

python - 根据另一个列表对列表列表进行排序

python - 在 Python 中,deepcopy 和 [each[ :] for each in List] 有什么区别

jquery - 带 jQuery 插件的 TinyMCE 外部图像列表

ocaml - OCaml 会将多参数函数转换为柯里化(Currying)还是相反?

python - "math.floor(x)"和 "int(x)"是否在 Python 中对正实数产生不同的结果?

python - 如何将输入读取为数字?