我想将此 ML 代码翻译成 F#。
fun take ([], i) = []
| take (x::xs, i) = if i > 0 then x::take(xs, i-1)
else [];
我试过这个
let rec take n i =
match n,i with
| [], i -> []
| x::xs, i -> if i > 0 then x::take(xs, i-1)
else [];
let val = take [1;2;3;4] 3
和这个
let rec take input =
match input with
| ([], i) -> []
| (x::xs, i) -> if i > 0 then x::take(xs, i-1)
else [];
let val = take ([1;2;3;4] 3)
但是他们都给了我一个错误take.fs(7,5): error FS0010: Unexpected keyword 'val' in binding
。F# 代码有什么问题?