2011-09-15 3 views
14

나는 일반적으로이 작업을 수행하는 방법을 몰라,하지만 난 명확성을 위해 특히 약 인스턴스를 요청할 것입니다 :를 OCaml의 최상위는

Sexplib 나에게 흥미로운 보인다. 나는 그걸 가지고 놀고 싶다. 나는 그것을 다운로드하여 잘 설치했다. (나는 어쨌든 확실하다.) 최상위에서 "sexp"구문 확장을 사용하고 싶다. 이 일을 어떻게 하죠? 필자가 사용법을 발견 한 모든 예제는 당신이 이미 최상위 레벨을 만들고 구문 확장을 사용하여 컴파일하는 방법을 이미 알고 있다고 가정합니다. 나는이 최상위를 실행하면 나는 with sexp 구문 확장을 사용하려고 할 때

ocamlmktop -I +site-lib/sexplib -pp "camlp4 -I +site-lib/sexplib pa_sexp_conv.cma" -o sexplib-top 

, 나는, 그러나, 나는 구문 오류를 open Sexplib 잘 얻을 수 있습니다 : 그것에

내 최고의 기회는 다음과 같이이었다. -

답변

15

그것은이다 XXI 세기는 이미 ocamlfind 사용

 Objective Caml version 3.11.2 

# #use "topfind";; 
- : unit =() 

# #camlp4o;; 
/usr/lib/ocaml/dynlink.cma: loaded 
/usr/lib/ocaml/camlp4: added to search path 
/usr/lib/ocaml/camlp4/camlp4o.cma: loaded 
    Camlp4 Parsing version 3.11.2 

# #require "sexplib.syntax";; 
/usr/lib/ocaml/unix.cma: loaded 
/usr/lib/ocaml/bigarray.cma: loaded 
/usr/lib/ocaml/nums.cma: loaded 
/usr/lib/ocaml/num-top: added to search path 
/usr/lib/ocaml/num-top/num_top.cma: loaded 
/usr/lib/ocaml/sexplib: added to search path 
/usr/lib/ocaml/sexplib/sexplib.cma: loaded 
/usr/lib/ocaml/type-conv: added to search path 
/usr/lib/ocaml/type-conv/pa_type_conv.cmo: loaded 
/usr/lib/ocaml/sexplib/pa_sexp_conv.cmo: loaded 

# type t = { x : int; y : float; } with sexp;; 
type t = { x : int; y : float; } 
val t_of_sexp__ : Sexplib.Sexp.t -> t = <fun> 
val t_of_sexp : Sexplib.Sexp.t -> t = <fun> 
val sexp_of_t : t -> Sexplib.Sexp.t = <fun> 
+4

글쎄, 내가 오렌지 페인트와 수잔 저를 호출합니다. 고맙습니다. 학습 자료가 온라인이나 인쇄물, 어디서나, 전혀 언급되지 않았다면 정말 도움이 될 것입니다. https://github.com/camlunity/kamlo_wiki/blob/master/Findlib.md - - #의 camlp4o을하는 일이 예 – koschei

+0

와우,이 관용적 표현 : 여기 findlib에 대한 기사가 (러시아어)입니다 즐겼다 ;; 위의합니까? 위의 부분을 입력하면로드 된 모듈 목록이 표시되지 않지만 오류는 발생하지 않습니다. 작동하지 않는 것 같습니다. – ygrek

+0

로 확장 – aneccodeal