3 ms·
As a big Ocaml fan, the syntax is one of my least favourite aspects of the language. Two things that I find particularly annoying are constructors (which don't
by ufo 8y ago
As a big Ocaml fan, the syntax is one of my least favourite aspects of the language.
Two things that I find particularly annoying are constructors (which don't have the same syntax as funciton calls) and the multitude of shift-reduce ambiguities that don't do the thing that you want. For example, in the following code the W gets parsed as part of the inner match:
match foo with
| X -> match bar with
| Y -> 1
| Z -> 2
| W -> 3
A lot of this could be remedied by having more expression terminators. ReasonML uses C-like curly braces but even a simple "end" token to close the match expressoin (similar to what Lua does) would already be enough.
- anuragsoni 8y agoThis tripped me up when I was first exploring OCaml. FWIW i've taken to wrapping the nested matches with parenthesis or a begin/end match foo with | X -> (match bar with | Y -> 1 | Z -> 2) | W -> 3 match foo with | X -> begin match bar with | Y -> 1 | Z -> 2 end | W -> 3
- nestorD 8y agoThe indentation sensitive syntax of F# was the solution to me, I would love to see it being integrated into OCaml.
- diaz 8y agoOhh interesting. Didn't get that far yet. But good to know. Is there somekind of place listing these gotchas with the syntax? Seems something good to be aware.
- scns 8y agoCheck out the point "comparison to ocaml" in the reasonml docs