2015-02-25 8 views
6

Was macht der Operator in OCaml?Operator in OCaml

let int_of_meth = function 
    | `GET  -> 0 
    | `POST -> 1 
    | `PUT  -> 2 
    | `DELETE -> 3 
    | `HEAD -> 4 
    | `PATCH -> 5 
    | `OPTIONS -> 6 
    | _  -> failwith "non standard http verbs not supported" 

Ich kann es nicht im OCaml Handbuch finden.

+4

http://caml.inria.fr/pub/ docs/manual-ocaml-4.00/manual006.html # toc36 –

Antwort

7

Diese ` ist nicht wirklich ein Operator. Es funktioniert auf der lexikalischen Ebene (wie Zitate für Strings) und macht das folgende Symbol zu einer "polymorphen Variante". Siehe den von @Edgar Aroutiounian angegebenen Link:

http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual006.html#toc36

aktualisiert

Eigentlich ` als separates Symbol gescannt wird, wie durch @gsg zur Kenntnis genommen. Eine polymorphe Variante wie ` Abc ist also ein syntaktisches Konstrukt. Ich würde immer noch behaupten, dass es kein Operator im üblichen Sinne ist.

(Edit:... Geändert Abc Ich wusste nie, sollten sie aktiviert werden, zum Beispiel der lablgl Schnittstelle scheint durchweg niedrigen Fall zu verwenden)

+2

Es ist nicht wirklich wie String-Anführungszeichen: Das 'und das Symbol sind getrennte Token und es kann Leerzeichen zwischen ihnen geben. – gsg

+0

Ich wusste nicht, dass Sie Leerzeichen einschließen könnten! Solch eine triviale Tatsache, aber es verändert die Art, wie ich über polymorphe Varianten denke, enorm. –

+0

Sie haben Recht, ich habe gerade lexer.lll überprüft. Ich werde meine Antwort aktualisieren. –