X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=learning_ocaml.mdwn;h=9ce0ac5076d06d2f8a5207caef356189135d19af;hp=01456dbf3d3bb1c32b4007fff3c6f07e7bd0edcd;hb=c09099789e80462f6e59d5f554735b2fdbfcc23b;hpb=4bc0776e79a9bad3a6378d9f1339f62605e436fd diff --git a/learning_ocaml.mdwn b/learning_ocaml.mdwn index 01456dbf..9ce0ac50 100644 --- a/learning_ocaml.mdwn +++ b/learning_ocaml.mdwn @@ -1,17 +1,69 @@ +* [Try OCaml in your browser](http://try.ocamlpro.com/) (slow, bare-bones) +* This site's guide to [[Installing OCaml|/installing#ocaml]] +* This site's [[explanation of the differences between Scheme, OCaml, and Haskell|rosetta1]] -* [[!wikipedia Objective Caml desc="Wikipedia overview of OCaml"]] -* [A Concise Introduction to Objective Caml](http://www.csc.villanova.edu/~dmatusze/resources/ocaml/ocaml.html) + +* **[A brief introduction to OCaml](http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html)** +* [What is OCaml?](http://ocaml.org/learn/description.html) +* [Code Examples](http://ocaml.org/learn/taste.html) +* [Cheat Sheets](http://ocaml.org/docs/cheat_sheets.html) +* [Caml Quick Reference Guide](http://caml.inria.fr/pub/old_caml_site/FAQ/qrg-eng.html) +* [A Concise Introduction to Objective Caml](http://www.csc.villanova.edu/~dmatusze/resources/ocaml/ocaml.html), 22 pp. from 2000, a few details may have changed +* [OCaml Tutorial by Example](http://xahlee.org/ocaml/ocaml_basics.html), Xah Lee from 2009 +* Wikipedia on +[ML](http://en.wikipedia.org/wiki/ML_%28programming_language%29), +[Caml](http://en.wikipedia.org/wiki/Caml), and +[OCaml](http://en.wikipedia.org/wiki/OCaml) -* Here are [two](http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html) [other](http://pauillac.inria.fr/caml/FAQ/stephan.html) brief overviews of OCaml, aimed at readers who already have some programming experience. Here are [two](http://pauillac.inria.fr/caml/FAQ/exemples-eng.html) [more](http://pauillac.inria.fr/caml/FAQ/qrg-eng.html), even briefer. -* Here's a [more detailed tutorial](http://www.ocaml-tutorial.org/) for OCaml. + +* [OCaml Wiki](http://ocaml.org/) +* [INRIA](http://caml.inria.fr/) -* The start of the [OCaml Reference Manual](http://caml.inria.fr/pub/docs/manual-ocaml/manual003.html) has another tutorial. -* Jason Hickey has posted a [draft of a nice book introducing OCaml](http://www.cs.caltech.edu/courses/cs134/cs134b/book.pdf). +## Tutorials ## +* The [start of the OCaml Manual](http://caml.inria.fr/pub/docs/manual-ocaml/coreexamples.html) has a tutorial +* [More Tutorials](http://ocaml.org/learn/tutorials/) +* First 3 chapters of *OCaml from the Very Beginning*: +[1](http://ocaml-book.com/s/11-17Chapter1.pdf) +[2](http://ocaml-book.com/s/19-25Chapter2.pdf) +[3](http://ocaml-book.com/s/29-33Chapter3.pdf) +* Chapter [1](http://www.ffconsultancy.com/products/ocaml_for_scientists/chapter1.html) of *OCaml for Scientists* +* Chapter [1](http://www.southampton.ac.uk/~fangohr/software/ocamltutorial/lecture1.html) of *OCaml for Scientific Computation* +* [Introduction to Objective Caml](http://files.metaprl.org/doc/ocaml-book.pdf) +(284 pp. text from 2008, based on Jason Hickey's course at CalTech) +* [Think OCaml](http://greenteapress.com/thinkocaml/thinkocaml.pdf) (142 pp. pdf) +* [Real World OCaml](https://realworldocaml.org/v1/en/html/index.html) (510 pp. text from 2013) + * recommend reading [Chapters 1-4](https://realworldocaml.org/v1/en/html/a-guided-tour.html) when getting started (Chapter 4 is a bit more advanced) + * then [Chapter 6](https://realworldocaml.org/v1/en/html/variants.html) when learning types + * then [Chapter 8](https://realworldocaml.org/v1/en/html/imperative-programming-1.html) when learning about mutation (OCaml has what we call *explicit* mutation) -* FAQs for [OCaml Beginners](http://pauillac.inria.fr/caml/FAQ/FAQ_DEBUTANT-eng.html), and [a few more](http://caml.inria.fr/resources/doc/faq/). Also FAQs for [OCaml Experts](http://pauillac.inria.fr/caml/FAQ/FAQ_EXPERT-eng.html). +### Other ### -* Some more: [OCaml Basics](http://xahlee.org/ocaml/ocaml_basics.html); [Chapter 1 of OCaml for Scientists](http://www.ffconsultancy.com/products/ocaml_for_scientists/chapter1.html). +* [Introduction to OCaml for Haskellers](http://foswiki.cs.uu.nl/foswiki/pub/Stc/BeyondFunctionalProgrammingInHaskell:AnIntroductionToOCaml/ocaml.pdf), [another](http://blog.ezyang.com/2010/10/ocaml-for-haskellers/) +* Haskell Wiki on [OCaml](https://wiki.haskell.org/OCaml) +* [ML Dialects and Haskell](http://hyperpolyglot.org/ml) +* [Differences between Haskell and SML?](http://www.quora.com/What-are-the-key-differences-between-Haskell-and-Standard-ML?browse) +* [Comparing SML to OCaml](http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html) +* [A C++/Java programmer's introduction to Objective Caml](http://caml.inria.fr/pub/old_caml_site/FAQ/stephan.html) + +## Advanced Docs, listed here for reference ## +* [User's manual](http://caml.inria.fr/pub/docs/manual-ocaml/index.html), including [standard library](http://caml.inria.fr/pub/docs/manual-ocaml/libref/index.html) +* [Latest release](http://ocaml.org/releases/latest/) +* OPAM package manager: +[usage](https://opam.ocaml.org/doc/Usage.html) | +[repository](https://opam.ocaml.org/packages/) | +[issues](https://github.com/OCaml/opam-repository/issues) +* [Style guidelines](http://caml.inria.fr/resources/doc/guides/guidelines.en.html) +* [FAQ](http://ocaml.org/learn/faq.html) + + +* [Debugging](http://caml.inria.fr/resources/doc/guides/debug.en.html) +* [Tips for using the OCaml toplevel](http://mirror.ocamlcore.org/wiki.cocan.org/tips_for_using_the_ocaml_toplevel.html) +* [Making code run fast](http://mirror.ocamlcore.org/caml.inria.fr/pub/old_caml_site/ocaml/speed.html) +* [How to pretty-print?](http://caml.inria.fr/pub/old_caml_site/FAQ/format-eng.html) +* OCaml-Tutorial [Glossary](http://mirror.ocamlcore.org/ocaml-tutorial.org/glossary.html) +* [Reddit's r/ocaml](https://www.reddit.com/r/ocaml) +* [Stack Overflow](https://stackoverflow.com/questions/tagged/ocaml?sort=faq) questions tagged "ocaml"