Ваша проблема с синтаксисом вызвана тем, что у вас есть let
без соответствующего in
.
Выражение let выглядит следующим образом:
let v = expr1 in expr2
По сути, это устанавливает локальная переменная v
со значением expr1
и значением expr2
(которая, вероятно, будет содержать экземпляры переменной v
).
Вам не хватает части in
элемента let выражение.
В качестве другого комментария, если вы определите функцию, подобную этой:
let f l = function ...
Вы определяете функцию из двух параметров. Существует неявный параметр, определенный ключевым словом function
; параметр сопоставляется со следующими шаблонами.
Скорее всего, вы хотите удалить l
из определения вашей функции.
Есть несколько других проблем с вашим кодом, но я надеюсь, что это помогает добиться прогресса.