这里的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 list但这里有类型'列表'
我需要一些指导。第一个问题,在函数的声明中,应该是它的方式,使用n:int - > int列表?我应该删除n以便它读取
downTo : int -> int list
像问题陈述一样吗?
我一直试图研究几天,并且没有在任何地方看到这样的声明。我很困惑。感谢您的帮助。
答案 0 :(得分:4)
我认为你误解了列表是什么。你也不需要注释。
简单版
let rec downto n =
if n > 0 then n :: ( downto n-1) else []