OCaml
अपनी पहली OCaml Script लिखिए
खोज…
नमस्ते दुनिया
यह उदाहरण मानता है कि आपने OCaml स्थापित किया है ।
संकलित OCaml कोड
निम्नलिखित सामग्रियों के साथ, hello.ml नामक एक नई फ़ाइल बनाएँ:
print_string "Hello world!\n"
ocamlc OCaml कंपाइलर है। इस स्क्रिप्ट को संकलित करने और चलाने के लिए, चलाएं
$ ocamlc -o hello hello.ml
और फिर परिणामी बाइनरी निष्पादित करें
$ ./hello
Hello world!
OCaml कोड को निष्पादित करना
आप इस स्क्रिप्ट को बाइनरी में संकलित किए बिना भी चला सकते हैं। आप ocaml संवादात्मक उपयोग की अनुमति देने वाले ocaml , ओम्प्लेट टॉपवेल सिस्टम का उपयोग करके ऐसा कर सकते हैं। अपने खोल में, बस चलाते हैं
$ ocaml hello.ml
Hello world!
REPL में
एक नया खोल खोलें, और ocaml सिस्टम को खोलने के लिए ocaml टाइप करें। एक बार सत्र में, आप एक ही कार्यक्रम टाइप कर सकते हैं:
OCaml version 4.02.1
# print_string "hello world!\n";;
प्रेस अभिव्यक्ति का मूल्यांकन करने के लिए दर्ज करें, और प्रिंट को ट्रिगर करें।
hello world!
- : unit = ()
सफलता! हम इसे मुद्रित hello world! देखते हैं hello world! , लेकिन क्या है - : unit = () बारे में? OCaml का कोई कथन नहीं है, सब कुछ एक अभिव्यक्ति है जो कुछ टाइप किए गए मूल्य का मूल्यांकन करता है। इस स्थिति में, print_string एक फ़ंक्शन है जो इनपुट के रूप में एक string में लेता है, और एक unit देता है। एक प्रकार के रूप में unit बारे में सोचें जो केवल एक मान ले सकता है, () (इकाई के रूप में भी संदर्भित), और एक समाप्त गणना का प्रतिनिधित्व करता है जो कोई सार्थक मूल्य नहीं देता है।
इस स्थिति में, print_string में स्क्रीन पर इनपुट के रूप में प्राप्त वर्ण डालने का साइड-इफेक्ट भी होता है, यही कारण है कि हम पहली पंक्ति देखते हैं।
REPL से बाहर निकलने के लिए, ctrl+D दबाएं।
यूनिक्स लिपि के रूप में
हमारे पास OCaml script बनाने के दो तरीके हैं। पहला सिस्टम टॉपलेव का उपयोग करता है (आपके पैकेज मैनेजर द्वारा प्रदान किया जाता है जैसे apt-get ) और दूसरा ओप्पम द्वारा प्रदान किए गए टॉपवेल का उपयोग करते हैं।
सिस्टम टॉपवेल का उपयोग करें
अपना पसंदीदा संपादक खोलें, और लिखें:
#!/usr/bin/ocaml
print_string "hello worlds!\n";;
इसके बाद, आप chmod +x your_file.ml उपयोग कर सकते हैं और आप अपनी स्क्रिप्ट को ./your_file.ml साथ निष्पादित कर सकते हैं।
OPAM द्वारा प्रदान किए गए टॉपवेल का उपयोग करें
#!/usr/bin/env ocaml
print_string "hello worlds!\n";;
बड़ा अंतर आपके टॉपवेल के संस्करण के बारे में है। वास्तव में, यदि आप एक विशिष्ट स्विच (जैसे opam switch 4.03.0 ) के साथ अपने OPAM को कॉन्फ़िगर करते हैं, तो स्क्रिप्ट OCaml 4.03.0 का उपयोग करेगी। उदाहरण के लिए, पहले डेबियन सिड में, स्क्रिप्ट OCaml 4.02.3 का उपयोग करेगी।
आप की जगह ले सकता कुटिया से #!/usr/bin/env utop उपयोग करने के लिए utop बजाय वेनिला उच्चस्तरीय।
utop
utop डिस्ट्रीब्यूशन के बाहर एक और ओम्प्लेट utop है - इसका मतलब है, आपको utop को डाउनलोड करने और इंस्टॉल करने की utop (इसका आसान तरीका यह है कि आप opam install utop : opam install utop ) का उपयोग करें। utop में ऐतिहासिक, पूर्ण और इंटरैक्टिव लाइन संपादन जैसी कई विशेषताएं हैं।
इसलिए, यदि आप कुछ ओसमल कोड को आज़माने का आसान तरीका चाहते हैं, तो utop है।
क्यों utop और नहीं ocaml ?
यदि आप ऊपर की तरह एक ओपल स्क्रिप्ट चाहते हैं, तो utop और ocaml में कोई बड़ा अंतर नहीं है। लेकिन utop समुदाय में आम बात यह है कि utop बजाय ocaml का उपयोग करें।
वास्तव में, ocaml आरईपीएल ओसमल वितरण द्वारा प्रदान किया जाता है। इसलिए, यह आरईपीएल संकलक के रिलीज चक्र का अनुसरण करता है और यदि आप कुछ अतिरिक्त विशेषताएं चाहते हैं, तो आपको संकलक की अगली रिलीज का इंतजार करना होगा। utop , जैसा कि हमने समझाया, वितरण के बाहर है, इसलिए रिलीज़ चक्र संकलक द्वारा बाधा नहीं है और यदि आप एक अतिरिक्त सुविधा चाहते हैं, तो आप इस सुविधा को utop तुलना में ocaml अंदर धकेलने का प्रयास ocaml :)!
इस बिंदु के लिए (और ऐतिहासिक सुविधा के लिए) ocaml समुदाय में ज्यादातर लोगों का उपयोग करना पसंद utop से ocaml ।