[英]F# int -> int list recursive function
这里是F#的新手,需要一些帮助。 所以问题说写一个函数
downTo : int -> int list
因此downTo n返回n元素列表[n; N-1; ...; 1]使用if-then-else然后进行模式匹配。
这就是我尝试过的if-then-else部分的内容
let rec downTo n : int -> int list =
let list = []
if n > 1 then
n :: list
downTo (n - 1)
else
list
因此,我在n :: list处收到一条警告,提示“此表达式应具有'unit'类型,但具有'int list'类型。 使用ignore丢弃结果等。
最后一行错误“此表达式应该具有int类型-> int列表,但此处具有类型“ a列表”
我需要一些指导。 第一个问题,在函数的声明中,应该采用n:int-> int list的方式吗? 我应该删除n以便读取
downTo : int -> int list
像问题陈述中那样? 我已经尝试研究了好几天,并且在任何地方都没有看到这样的声明。 我很困惑 提前谢谢你的帮助。
我认为您误解了什么是清单。 另外,您不需要注释。
一个简单的版本
let rec downto n =
if n > 0 then n :: ( downto n-1) else []
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.