3 ms·
OCaml allows mutation via reference cells.
by greener_grass 2y ago
OCaml allows mutation via reference cells.
- chubot 2y agoI know that, and obviously you can write a recursive descent parser in OCaml But I'm saying there's nothing better about it than doing it in OCaml vs. C++ or Python -- it's the same or a little worse IMW it's natural to express the interface to a lexer and parser as classes -- e.g. you peek(), eat(), lookahead(), etc. Classes being things that control mutation But objects in OCaml seem to be a little separate dialect: https://dev.realworldocaml.org/objects.html https://dev.realworldocaml.org/objects.html When I debug a parser, I just printf the state too, and that is a little more awkward in OCaml as well. You can certainly argue it's not worse, but I have never seen anyone argue it's better. --- Culturally, I see a lot of discussions like this, which don't really seem focused on helping people finish their parsers: https://discuss.ocaml.org/t/why-a-handwritten-parser/7282/7 https://discuss.ocaml.org/t/why-a-handwritten-parser/7282/7 https://discuss.ocaml.org/t/good-example-of-handwritten-lexer-recursive-descent-parser/15672 https://discuss.ocaml.org/t/good-example-of-handwritten-lexe... I also use lexer/parser generators, and I like that there are more tools/choices available in C/Python than in OCaml.