Ich arbeite mit einer Liste von Listen in OCaml, und ich versuche, eine Funktion zu schreiben, die alle Listen kombiniert, die den gleichen Kopf teilen. Das ist, was ich bisher, und ich nutze die List.hd eingebauten Funktion, aber nicht überraschend, dass ich den Fehler „hd“ Fehler bekommen:Listen mit gleichen Köpfen in einer 2D-Liste (OCaml) kombinieren
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];;
So zum Beispiel, wenn ich haben diese Liste:
[[Sentence; Quiet]; [Sentence; Grunt]; [Sentence; Shout]]
ich möchte es in kombinieren:
[[Sentence; Quiet; Grunt; Shout]]
Die Funktion uniq ich entfernt schrieb nur alle Duplikate innerhalb einer Liste. Bitte lassen Sie mich wissen, wie ich das machen würde. Danke im Voraus!