【发布时间】:2019-04-19 00:50:30
【问题描述】:
我需要 F# 方面的帮助。我需要验证列表中是否存在一个数字,使用递归函数而不使用List.contains 或类似的东西。该程序应该只告诉我它是真还是假。例如:
contains(8N, [3N; 8N; 2N]) = true
contains(7N, [3N; 8N; 2N]) = false
到目前为止我所拥有的:
let rec contains(x: Nat, list: Nat list): bool =
match list with
| [] -> false
| x::xs when x =
【问题讨论】:
-
请添加您目前拥有的代码。
-
因为这是家庭作业,所以这里是一个提示,而不是一个完整的答案。对于 F# 列表,您通常希望将列表分为第一项和其余项,然后对第一项进行一些操作,并在列表的其余部分上递归调用您的函数。最终列表的其余部分将为空,此时您不再进行任何递归调用。
-
let rec contains(x: Nat, list: Nat list): bool = match list with | []->假| m::xs 当 x =
标签: list recursion f# boolean contains