2016-04-30 21 views
3

Ich arbeite durch Real World OCaml und ich bin auf der folgenden Code einen Syntaxfehler bekommen:Syntaxfehler mit „mit Feldern“ in OCaml

`# module Logon = struct 
    type t = 
     { session_id: string; 
     time: Time.t; 
     user: string; 
     credentials: string; 
     } 
    with fields 
    end;; 

On läuft, unterstreicht Utop das Wort " mit "und wirft einen Syntaxfehler. Ich habe ähnliche, einfachere Beispiele selbst ausprobiert und bekomme den gleichen Fehler. Irgendwelche Gedanken über was ist los?

EDIT: Ausgelassen "}" hinzugefügt.

Antwort

4

Für ocaml 4.01.0: In utop: #require "fieldslib.syntax";; löst das Problem. (... vergiss nicht, opam install fieldslib zu laufen).

Für die letzten ocaml: (habe einige Hinweise here).

OPAM ppx_jane fieldslib

#require "ppx_jane";; 
#require "fieldslib";; 
module Logon = struct 
    type t = 
     { session_id: string; 
     time: Time.t; 
     user: string; 
     credentials: string; 
     } 
    [@@deriving fields] 
    end;; 
+0

Keine Würfel für mich installieren ... auf '#require "fieldslib.syntax" ;;' I "kein solches Paket: fieldslib.syntax" erhalten. Opam besteht jedoch darauf, dass fieldslib bereits installiert ist (auf 'opam install fieldslib') und auch auf dem neuesten Stand ist (auf' opam upgrade fieldslib'). Auch innerhalb von utop '#require fieldslib" ;; 'behebt das Problem nicht. –

+0

es funktioniert mit ocaml 4.01.0, aber nicht mit 4.02.3, wo ich die fieldslib.syntax nicht bekommen kann (dasselbe Problem wie Sie @John Binder) . –

+0

'[@@ abgeleitete Felder]' funktioniert. Danke @Pierre G –