Program
Introduction to the OCaml training
- General introduction and objectives of this OCaml training
- Main features of the language, advantages and positionning
- Properties of OCaml (speed, errors, safety) and programming paradigms
Introduction to OCaml
- The Story of OCaml
- The OCaml Ecosystem
Installing the OCaml Environment
- Opam, the OCaml package manager
- Editing tools for OCaml
Development Tools
- The OCaml interpretor
- The OCaml compilers (bytecode, native code, javascript)
A Full OCaml Program
- Rewriting the grep tool in OCaml
- How to compile and execute a program
How to write and execute a basic program
- How to invoke OCaml
- Structure of a program
- Definitions and expressions
- Structures of control
Predefined data types
- Types in OCaml
- Primitives types
- Predefined imperative types
- Predefined functional types
Advanced Control
- Imperative loops
- First class functions
- Pattern-matching on values
- Exceptions
The Standard Library
- Primitive types
- Data structures
- Input-Output Functions
- The system interface
Defining new data types
- Type aliases
- Records
- Algebraic types
- Exceptions again
- Recursive types
- Polymorphism
Types in the Standard Library
Deeper in the Type System
- Type inference
- The unification algorithm