2010-05-26 18 views
8

Wenn die Leute in OCaml auf die "revidierte Syntax" verweisen, heißt das, dass dies eine neue Syntax für die Sprache wird, oder ist es nur eine alternative in CamlP4 erstellte Syntax? Wenn es ersteres ist, wann wird dann die "revidierte Syntax" zur "offiziellen Syntax" von OCaml?Was ist die "überarbeitete Syntax" in OCaml?

Antwort

11

Die überarbeitete Syntax ist nur eine alternative to the original, die in Camlp4/5 implementiert ist (es gibt auch eine Lisp syntax geschrieben in Camlp5). Einige Leute bevorzugen es, aber ich würde Sie davon abhalten, es zu verwenden, da es wahrscheinlich nur dazu führt, dass Ihr Code für andere OCaml-Programmierer verwirrender wird. An einem Ort ist es wichtig, die überarbeitete Syntax zu kennen, wenn Sie Camlp4/5-Erweiterungen schreiben. Die überarbeitete Syntax wird für Patterns und Neuschreibungen verwendet, wahrscheinlich weil sie etwas konsistenter als das Original ist.

Soweit ich weiß, gibt es keinen Plan, die ursprüngliche OCaml-Syntax durch die überarbeitete Syntax zu ersetzen.

+2

"aber ich würde dich davon abhalten, es zu verwenden, da es wahrscheinlich nur dazu führen wird, dass dein Code für andere OCaml-Programmierer verwirrender wird" - er, dann solltest du besser oampl verwenden, da es viel mehr Leute verwirren wird :)). Wie auch immer, Sie können Zitate mit Originalsyntax schreiben, aber es gibt einige Fälle, die nicht in der Originalsyntax ausgedrückt werden können, deshalb wird in der Regel für diese Aufgabe revidiert. Wie bei der üblichen Programmierung - die überarbeitete Syntax ist wohl logischer und einfacher für Neulinge (deshalb existiert sie doch) - ohne viele Unklarheiten des Originals. – ygrek

+6

ygrek, ich mache keine Darstellung darüber, welche Syntax besser ist. Ich denke, eine kleine bis mittelgroße Gemeinschaft wie OCaml sollte hart arbeiten, um Dialekte nicht zu fragmentieren. –

+3

Ein weiterer Punkt gegen überarbeitete Syntax: schlechte (er) Editor-Unterstützung. Weder Tuareg noch Vim OCaml unterstützen es meines Wissens. –

2

Dies ist nur eine alternative konkrete Syntax. Ich denke, das ist nur um zu demonstrieren, wie mächtig CamlP4 ist, eine Art Proof of Concept.

+0

Es ist kein Proof of Concept - es deckt alle Merkmale der Sprache wie das Original ab. – ygrek

+0

das ist nur ein Beweis für das Konzept, dass Sie mehrere konkrete Syntax haben können. Das war, was ich meinte ... weil ich nicht glaube, dass viele Leute die überarbeitete Syntax tatsächlich verwenden. – LB40