Ist in Ocaml-Funktion, die Zeichenfolge wie diese "[(1,2,3);(1,2,5);(2,3,4)]" in (int*int*int) Liste parsen kann? oder muss ich meine eigene Parsing-Funktion zu schreiben?
Gracias
Greg
Ist in Ocaml-Funktion, die Zeichenfolge wie diese "[(1,2,3);(1,2,5);(2,3,4)]" in (int*int*int) Liste parsen kann? oder muss ich meine eigene Parsing-Funktion zu schreiben?
Gracias
Greg
Nun, das sollte mit Hilfe der folgenden Informationen nicht allzu schwierig sein Scanf Modul aus der Standardbibliothek - Sie können die Tripel leicht scannen und müssen dann nur noch ein wenig Logik hinzufügen, um eine Liste zu parsen.
Alternativ können Sie auch einen Blick auf Ableitung :
Erweiterung von OCaml zur Ableitung von Funktionen aus Typdeklarationen. Enthält Derivate für Pretty-Printing, typsicheres Marshalling mit Struktur-Sharing, dynamische Typisierung, Gleichheit und mehr.
Wenn Sie bereit sind, ein etwas anderes Format zu verwenden, können Sie Ihren Parser kostenlos erhalten. Mit der sexplib-Syntaxerweiterung können Sie einfach schreiben:
type t = (int * int * int) list with sexp
und dies wird automatisch zwei Funktionen für Sie definieren, sexp_of_t
y t_of_sexp
. Sexplib bietet auch mehrere Parsing-Funktionen.
Die konkrete Syntax von s-Ausdrücken ist jedoch anders. Ihr Beispiel würde gerendert werden:
((1 2 3) (1 2 5) (2 3 4))
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.