let downTo n =
if (n.Equals(0)) then
printfn "\n Empty List Provided \n";;
else
List.rev(List.init n (fun index -> index + 1));;
如果传递的数字大于0,我正在尝试创建列表'n'长度。如果没有,请打印错误消息。列表单独工作,但不在If-Else语句中。如何实现这一目标?请帮忙。
答案 0 :(得分: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))
或者,您可以抛出异常,但这样做有一个缺点,就是你必须围绕它做try/catch
。