我对F#相当陌生,所以这个问题可能是相当初级的。尽管如此,我还是找不到任何建议。
我在F#中玩一个算法任务。作为第一步,我希望从用户控制台输入创建一个整数集合。没有定义输入的数量。我也不习惯使用任何while循环。我希望尽可能多地采用惯用的方法。
在一个递归函数中,我正在读取结果并使用Int32.TryParse解析它。我使用match ... with匹配bool结果。如果成功,则向集合附加一个新值。否则,我将返回集合。
下面是我的代码:
let rec getNumList listSoFar =
let ok, num = Int32.TryParse(Console.ReadLine())
match ok with
| false -> listSoFar
| true -> getNumList num::listSoFar
let l = getNumList []我所犯的错误是:
类型错配。期待一场 但给了一份清单
我知道我使用的类型不正确,虽然我不明白到底是什么错了。任何解释都非常感谢。
发布于 2014-11-16 15:36:13
在火柴支部
| true -> getNumList num::listSoFar你应该使用括号:
| true -> getNumList (num::listSoFar)因为函数应用程序比::运算符具有更高的优先级
https://stackoverflow.com/questions/26958538
复制相似问题