- Константы:
42,true,"abc" - Унарные операции:
not true,-42 - Бинарные операции:
+,-,*,/,||,&&,=,<>,<,<=,>,>= - Создание списков:
1 :: [2; 3] - Переменные:
some_var - let-объявления:
let f x y ... = ...,let rec f x y ... = ... - Анонимные функции:
fun x y -> x + y - Условный оператор:
if ... then ... else ... - Аппликация:
f x - Паттерн матчинг:
match x with ...,function ...,let x, y :: z = ... - Списки:
hd :: tl - Кортежи:
a, (_, b) - Константы:
5,"string",true - Эффекты:
SomeEffect x - Эффект-хэндлер:
effect (SomeEffect x) k whenиasне поддерживаются, так как легко заменяемые- Встроенные функции:
perform ...,continue ... - Создание новых эффектов:
effect E1: int,effect E2: (int -> int) -> string
- Поддержка всего того, что указано в синтаксисе
- В случае успешной интерпретации возвращается список, состоящий из пар: имя переменной --- значение
- В случае ошибки возвращается значение, содержащее тип ошибки
- Вывод наиболее общего типа по системе Хиндли-Милнера
- Проверка типов перед интерпретацией