Function F#int->;整数列表递归函数

Function F#int->;整数列表递归函数,function,recursion,f#,Function,Recursion,F#,完全是新手到F#这里,需要一些帮助。所以问题是写一个函数 downTo : int -> int list 因此,downTo n使用if-then-else和then模式匹配返回n元素列表[n;n-1;…;1] 这就是我为if-then-else部分所做的尝试 let rec downTo n : int -> int list = let list = [] if n > 1 then n :: list downTo

完全是新手到F#这里,需要一些帮助。所以问题是写一个函数

downTo : int -> int list
因此,downTo n使用if-then-else和then模式匹配返回n元素列表[n;n-1;…;1]

这就是我为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'类型。”。使用“忽略”放弃结果等

最后一行出现错误“此表达式应具有int->int list类型,但此处具有'a list'类型”

我需要一些指导。第一个问题,在函数的声明中,是否应该是这样的,使用n:int->int list?我是否应该删除n,使其显示为

downTo : int -> int list
比如在问题陈述中?
我已经努力研究了好几天,但在任何地方都没有看到这样的声明。我很困惑。提前感谢您的帮助。

我想您误解了列表的含义。此外,您不需要注释

简单的版本

let rec downto n =
    if n > 0 then n :: ( downto n-1) else []

非常感谢。是的,我似乎误解了很多。我很感激你的helpdownto是一个关键字,而且有一个语法错误,因此无法编译。