/lip

Primary LanguageOCamlApache License 2.0Apache-2.0

LiP Lab

LiP students are expected to fork the repository and push solutions to the exercises on their fork.

Invitation to the Discord server: https://discord.gg/hnzhuVv9 (expires on November 8th, 2022)

Ocaml basics #1

You can work on these exercises using the online Ocaml playground: Try Ocaml.

  1. Max of two numbers
  2. Absolute value
  3. From type to function #1
  4. Find a function #1
  5. Highest card wins
  6. From type to function #2
  7. Even and odd
  8. Comparing fractions
  9. Reverse a list
  10. Minimum of a function
  11. Fibonacci sequence
  12. Student grades

Ocaml basics #2

  1. Duplicates
  2. Random list
  3. From list to string
  4. Min and max of a function
  5. Extract an element from a list
  6. Alternating-even numbers
  7. Binary search trees
  8. Deck of cards
  9. The return of the Pumping Lemma
  10. List crush
  11. Longest subsequence
  12. Ping pong

Arithmetic expressions

To work at this project you must have a local installation of OCaml. Look here for minimal instructions.

  1. A minimal language of boolean expressions
  2. Boolean expressions with not, and, or
  3. Typed arithmetic expressions with dynamic type checking
  4. Typed arithmetic expressions with static type checking
  5. Untyped arithmetic expressions
  6. Arithmetic expressions with let bindings and dynamic type checking

Lambda calculus

  1. Pure untyped lambda calculus: call-by-value semantics with explicit renaming of bound variables
  2. Pure untyped lambda calculus: normal order semantics with explicit renaming of bound variables, and Church numerals
  3. Simply typed lambda calculus: call-by-value semantics and static type checking

Imperative languages

  1. A simple imperative language
  2. Declaration blocks
  3. Functions

References