cross-posted from: https://lemy.lol/post/19181146
I just started to learn Ocaml to learn functional programming. I will use it to build a CLI that’s mostly orchestrating other programs.
My experience is mostly in JS / TS, but I’ve also coded a good bit in Python and Lua.
Below, I provided a list of things I learned or focused on while using OCaml. But I feel like I must be missing something. This is only moderately different from what I’m used to in JS. I expected something more radical. Moreover, I constantly hear a lot of FP jargon (like “highly kinded types”, monads, etc) that I feel am still missing.
So far, here’s what I studied:
- immutability
- avoid side affects
- static typing
- recursion instead of loops
- option / maybe
- higher order functions
- conditionals and other constructs as expressions, when they’re statements in other languages
- pipelines and functions as input —> output
- currying
- scoping with let
What am I missing?
Whatever you’re not familiar in the digital textbook OCaml Programming: Correct + Efficient + Beautiful
There’s a whole chapter on modules
There’s also a section on Monads
You should also know that there is a schism in OCaml ecosystem created by the libraries developed by Jane Street and the those developed by INRIA.