下面的代码:F#在Mac上:在内部函数语法错误
exception NoElements of string
let nth(k, list) =
let rec loop count list =
match list with
| head :: _ when count = k -> head
| _ :: tail when count <> k -> loop (count+1) tail
| [] -> raise (NoElements("No Elements"))
loop 0 list
;;
printfn "%A" (nth(2, [1; 1; 2; 3; 5; 8]))
可生产在Mac上编译时,下面的错误,而不是在Visual Studio 2010中:
nth.fs( 10,0):错误FS0191:语法错误。
nth.fs(4,4):错误FS0191:在'let'中找不到匹配的'in'。
但是,如果您使用的是最新版本的F#,则不应该需要'#light'(我不确定这是否适用于Mac,但我相信它应该 - 如果否,请将问题报告给_fsbugs(at)microsoft.com_)。使用最新版本是一个好主意,因为每个版本都有一些改进:-) – 2010-04-12 18:22:46
是的,这个版本显然很旧 - 升级到RTM,今天刚刚宣布! http://blogs.msdn.com/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx – Brian 2010-04-12 18:25:06
恩,因为我有它的工作我的电脑以及VS.Net2010中,我会很懒惰...有没有办法迫使达尔文港获得比1.9.4.19更高的版本? – 2010-04-13 23:41:12