F#If-Then-Else麻烦

1 f#

let downTo n = 

    if (n.Equals(0)) then
        printfn "\n Empty List Provided \n";;
    else
        List.rev(List.init n (fun index -> index + 1));;
Run Code Online (Sandbox Code Playgroud)

如果传递大于0的数字,我正在尝试创建列表'n'长度.如果没有,请打印错误消息.列表单独工作,但不在If-Else语句中.如何实现这一目标?请帮忙.

N_A*_*N_A 6

F#if表达式是表达式而不是语句.这意味着表达式的两个部分需要具有相同的类型.在这种情况下,一侧具有一种类型int list而另一侧具有一种类型unit.

这样的事情对你更有用:

let downTo n =
    if (n.Equals(0)) then
        printfn "\n Empty List Provided \n"
        []
    else
        List.rev(List.init n (fun index -> index + 1))
Run Code Online (Sandbox Code Playgroud)

或者,你可以抛出异常,但这有一个缺点,你必须try/catch围绕它做.