Справочная информация: я использую Emacs 23.3, OCaml 3.12.0 и tuareg 1.45.7.
Я смотрю на книгу Hickey OCaml и пытаюсь запустить примеры на pg. 157 из книги, 167 из .pdf. Проблема возникает с выражением
type ’a blob = < draw : unit; .. > as ’a
Когда я набираю это в своем буфере emacs в режиме tuareg и пытаюсь оценить его с помощью C-c C-e
, я получаю следующую ошибку на верхнем уровне caml:
# type 'a blob = < draw : unit; .. > as ';;
Characters 39-41:
type 'a blob = < draw : unit; .. > as ';;
^^
Error: Syntax error
Обратите внимание, что последний a
не отображается в команде, отправленной на верхний уровень. Если я наберу строку прямо на верхнем уровне, она будет работать нормально:
# type 'a blob = < draw : unit; .. > as 'a;;
type 'a blob = 'a constraint 'a = < draw : unit; .. >
Итак, мой вопрос: почему это не работает, и как я могу это исправить? Обновление туарега, кажется, не вариант: я пытался использовать туарег версии 2.0, но он даже не загружается должным образом.
Обновление : это было исправлено в стволе SVN туарегов по состоянию на 12/8/12. Я не думаю, что они обновили релиз с исправлением, но вы можете анонимно захватить транк с помощью
svn checkout svn://svn.forge.ocamlcore.org/svn/tuareg/trunk
с учетом обычных предостережений о разработке и выпуске версий.