Table of Contents
Programming Languages Wiki
Welcome to the UnicaML wiki. This wiki contains teaching material for the LiP (Programming Languages) and IT (Theoretical Computer Science) courses at the University of Cagliari. It can also serve as a first introduction to Ocaml programming.
Read here for instructions about using this wiki.
Programming in OCaml
-
- Running Ocaml programs
- Arithmetic expressions
- Booleans and conditionals
- Global and local definitions
- Functions
-
- Recursive definitions
- Tail recursion
- Pattern matching
-
- Higher-order functions
- Polymorphism
- Bounded and unbounded iteration
- Currying and uncurrying
-
- List constructors
- Pattern matching on lists
- Tail recursive functions on lists
- Map and Filter combinators
- Fold combinators
-
- Tuples
- Records
- Tagged unions
- Recursive types
Imperative languages
-
- Specification of environment and store
- Integer expressions
- Global declarations
- Assignment, arrays, sequence, conditional, while loops
-
- Integer and boolean expressions
- Typed declarations
- Type checking
- Static analyses of imperative programs
-
- Call by value
- Call by name
- Type-checking
Lambda Calculus
-
- Recursive evaluator based on environments
- Eager evaluation
- Recursive functions
-
- Simple types
- Constraint typing rules
- Unification

