Teaching OCaml
ocaml.org
ocaml.org
Also note that it's easy to make quick edits in GitHub's web interface without having to clone the repo locally. It works well and we get a lot of quick fixes this way.
https://github.com/ocaml/ocaml.org/blob/master/site/learn/te...
Think of it as a use-after-free :)
Blobs are mostly immuable and you have to edit in a fork anyway, unless you have rights to the repo.
Static, strict-by-default ML derivatives (Standard ML, F#, Ocaml, AliceML, etc.)
Static, lazy-by-default ML-inspired (Haskell, probably others, but, really, Haskell).
Dynamic Lisp-family languages (Racket, Scheme, Common Lisp, Clojure)
Plus it helps to understand how those logic programming libraries, like mini-Kanren, core.logic among others work.
Erlang!
[1] http://www.cs.cornell.edu/Courses/cs3110/2014sp/lecture_note...
Isn't the latter redundant and in violation of whatever?
Back in the mid-90's they were teaching Caml Light. Most likely they are on OCaml nowadays.
The CS department is very strong in FP and LP languages and theory.
Due to Bologna, the older pages are now gone. I can try to contact some of my former teachers to find out the current set of languages.
- http://andrewray.github.io/iocamljs/oh261.html (H.261 video decoding)
- http://www.ujamjar.com/hardcaml/ (HardCaml RTL hardware description language, similar to Chisel in Scala)
- http://gazagnaire.org/fuconf14/ (building a 2048 game implementation)
AFAIK OCaml only support records, which are like C’s structs.
Edit: no, it has real objects, as stated in comments below.
http://caml.inria.fr/pub/docs/manual-ocaml/objectexamples.ht...
seems to state otherwise. That said, I think the common advice is to not use most of that and to restrict yourself to just records as they are almost always the better choice.
https://realworldocaml.org/v1/en/html/objects.html
You can do a lot of traditional 'OO'-style things with functors and modules, though, so you don't need objects necessarily to get a lot of OO features.
See: http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual005.ht...