繁体   English   中英

F#int-> int列表递归函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM