2017-05-27 4 views
1

は、だから私は、次のコードを持っている:私は2番目の関数を入力しようとすると、しかし- 「モジュール」または「オープン」または[opt_rec]の後に予想されるが、エラー「せ」

let rec take k list acc = match list with 
| [] -> failwith "empty list" 
| x::xs when k = 0 -> x, acc @ xs 
| x::xs -> take (k - 1) xs (acc @ [x]);; 

let rec random_p l acc = match l with 
| [] -> acc 
| [x] -> acc @ [x] 
| x::xs -> let r = (Random.int (List.length l)) in let val, rest = take r (x::xs) [] in random_p rest ([email protected][val]) 

を、私はエラーを取得します最終行の「せ」秒と

Parse error: "module" or "open" or [opt_rec] expected after "let" (in [expr]) 

は、エラーの原因として強調しました。私は事前にRandom関数の有無にかかわらず試しましたが、常にこのエラーが発生します。私は問題が何であるかを調べることができません。私は使ったことがあり、問題なく他のコードで事実上同じようにしました。

答えて

3

私はここでの問題は、valがキーワードであると信じています。 val_vなどで置き換えるか、キーワード以外のものを使用した場合は、このエラーが発生します。

+1

これは正しいと思われます - ありがとう! – Jayem

関連する問題