この 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# コードの何が問題になっていますか?