私はOCamlのリストのリストを使っていますが、同じヘッドを共有するすべてのリストを結合する関数を作成しようとしています。これは私がこれまで持っているものである、と私はList.hd組み込み関数の使用することが、驚くことではないが、私は失敗し、「HD」エラーを取得しています:2次元リスト(OCaml)の同じ頭のリストを結合する
let rec combineSameHead list nlist = match list with
| [] -> []@nlist
| h::t -> if List.hd h = List.hd (List.hd t)
then combineSameHead t [email protected]([email protected](List.hd t))
else combineSameHead t [email protected];;
ですから、例えば、I場合このリストを持っている:
[[Sentence; Quiet]; [Sentence; Grunt]; [Sentence; Shout]]
私はにそれを結合したい:
[[Sentence; Quiet; Grunt; Shout]]
私が書いた関数uniqのは、ちょうど、リスト内のすべての重複を削除します。私はこれをどうやって完了するか教えてください。前もって感謝します!