2016-04-22 3 views
0

Я новичок в OCaml, и я пытаюсь следовать 4.3 из this tutorial для определения пользовательского поведения котировок. Из того, что я прочитал, кажется, что загрузка camlp4o.cma делает модуль Quotation видимым для OCaml. Так что я попытался следующее переводчику OCaml:Ошибка «Отсоединение модуля Unbound module» даже после загрузки camlp4o.cma

# #load "dynlink.cma";; 
# #load "camlp4o.cma";; 
     Camlp4 Parsing version 4.02.3 

Похоже camlp4o.cma был успешно загружен. Поэтому я продолжил с остальной частью учебника:

# let expand _ s = 
      match s with 
      "PI" -> "3.14159" 
      | "goban" -> "19*19" 
      | "chess" -> "8*8" 
      | "ZERO" -> "0" 
      | "ONE" -> "1" 
      | _ -> "\""^s^"\"" 
     ;; 
val expand : 'a -> string -> string = <fun> 
# Quotation.add "foo" (Quotation.ExStr expand);; 
Characters 0-13: 
    Quotation.add "foo" (Quotation.ExStr expand);; 
    ^^^^^^^^^^^^^ 
Error: Unbound module Quotation 

Я не уверен, почему я получаю эту ошибку. Я что-то пропустил? Я использую OCaml версии 4.02.3 для Windows, если это актуально.

ответ

1

Учебник под http://caml.inria.fr/pub/docs/tutorial-camlp4/index.html OLD. Он основан на CamlP4 до версии 3.10.0. CamlP4 был полностью переписан в OCaml 3.10.0. Этот «новый» CamlP4 имеет множество несовместимостей.

В настоящее время люди уже перешли с CamlP4 на PPX, поэтому я не уверен, что CamlP4 стоит изучать. Говоря, вы можете увидеть https://github.com/ocaml/camlp4/wiki для некоторых документов «нового» CamlP4. Блог Джейка Донхэна http://ambassadortothecomputers.blogspot.com/ также содержит хорошую информацию об этом.

Смежные вопросы