2011-09-15 8 views
14

मैं कैसे सामान्य रूप में यह पूरा करने के पता नहीं है, लेकिन मैं स्पष्टता के लिए विशेष रूप से के बारे में एक उदाहरण के लिए कहेंगे:OCaml उच्चस्तरीय

Sexplib मुझे दिलचस्प लग रहा है। मैं इसके साथ खेलना चाहता हूं। मैंने इसे डाउनलोड कर लिया है, इसे ठीक से स्थापित किया है (मुझे यकीन है कि, वैसे भी), आदि। मैं "topp" वाक्यविन्यास एक्सटेंशन को एक अपरिवर्तनीय रूप से उपयोग करना चाहता हूं। मैं ऐसा कैसे कर पाऊंगा? मेरे द्वारा उपयोग किए गए सभी उदाहरणों का मानना ​​है कि आप पहले ही जानते हैं कि सिंटैक्स एक्सटेंशन के साथ अपूर्ण और/या संकलन कैसे करें।

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

जब मैं इस उच्चस्तरीय चलाने के लिए, मैं कर सकते हैं open Sexplib ठीक, लेकिन जब मैं with sexp वाक्य रचना एक्सटेंशन का उपयोग कर की कोशिश, मैं एक सिंटैक्स त्रुटि मिलती है:

यह मेरी सबसे अच्छा शॉट कुछ इस तरह था।

उत्तर

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

ठीक है, मुझे नारंगी रंग और मुझे सुसान कहते हैं। धन्यवाद। यह वास्तव में उपयोगी होगा अगर किसी भी सीखने के संसाधन ऑनलाइन या प्रिंट में, कहीं भी, कभी भी इसका उल्लेख कभी किया गया है। – koschei

+0

वाह, इस मूर्खतापूर्ण अभिव्यक्ति का आनंद लिया :) यहां findlib (रूसी में) के बारे में एक लेख है - https://github.com/camlunity/kamlo_wiki/blob/master/Findlib.md - इस उदाहरण के साथ विस्तारित – ygrek

+0

# camlp4o क्या करता है ;; ऊपर करो? जब मैं उपरोक्त उस भाग में प्रवेश करता हूं तो मुझे लोड मॉड्यूल की कोई सूची दिखाई नहीं देती है - लेकिन कोई त्रुटि नहीं है। काम नहीं लग रहा है। – aneccodeal