Идея такая: Пользователь пишет только выражения состоящие из атомов и кортежей как литералов, вызовов функций и биндингов с паттерн-матчингом. По сути функция есть биндинг с аргументами. Типы пользователь не определяет, НО Для любого множества аргументов функции есть множество результатов функции. Такие множества и есть как бы типы. То есть если я написал функцию
let foo a = a + 1
то "тип" foo integer - integer а тип foo 2 - 3 a тип foo "bla" - !
Идея такая: Пользователь пишет только выражения состоящие из атомов и кортежей как литералов, вызовов функций и биндингов с паттерн-матчингом. По сути функция есть биндинг с аргументами. Типы пользователь не определяет, НО Для любого множества аргументов функции есть множество результатов функции. Такие множества и есть как бы типы. То есть если я написал функцию
let foo a = a + 1
то "тип" foo integer - integer а тип foo 2 - 3 a тип foo "bla" - !
Блин я не могу его слушать, этот чувак орёт в микрофон, и получается такая фигня, Блоу что-то рассказывает а потом этот Шон врывается. Я решительно уменьшаю громкость, потом на Блоу обратно повышаю