One of my favorite programs, an ncurses-based RPN calculator called Orpie, is written in OCaml, but I've never messed around with it.
One of my favorite programs, an ncurses-based RPN calculator called Orpie, is written in OCaml, but I've never messed around with it.
For example, https://opam.ocaml.org/packages/why3 is a little marvel of engineering.
Anyway, looks like or-patterns just landed as a GHC extension:
foo (Bar; Baz) = 0
I still like OCaml's (built-in) syntax better: let foo (Bar | Baz) = 0
Which I feel stems from its elegant decision to use the pipe character as the 'alternative pattern prefix': let foo = function
| Bar
| Baz -> 0How is that?
9.10.3 is a patch for the 9.10 version which was published after 9.12.1 but relates to an older version. Haskell keeps maintaining multiple versions of the toolchain.
I'm not extremely familiar with any of the ML family, but Eric Lippert had a blog series I followed for a while in which he was writing a Z-Machine in OCaml: https://ericlippert.com/2016/02/01/west-of-house/ I followed along but in Rust for a while, though I think he paused the project at some point and I lost steam.
I learned more about Rust (which, IIRC was first implemented in OCaml) than I did about OCaml, but it's always seemed like a nice language.
It is one of these small languages that are not completely niche: it is taught and used, you'll be able to do plenty of things, but there is not the community and resources you find in the big ones or even the mid-sized ones