OCaml
पाइप, फाइलें और धाराएं
खोज…
मानक इनपुट और प्रिंट से मानक आउटपुट तक पढ़ें
हम निम्नलिखित सामग्री के साथ एक फाइल तैयार करते हैं, जिसे reverser.ml कहा जाता है:
let acc = ref [] in
try
while true do
acc := read_line () :: !acc;
done
with
End_of_file -> print_string (String.concat "\n" !acc)
फिर हम निम्नलिखित कमांड का उपयोग करके अपने प्रोग्राम को संकलित करते हैं:
$ ocamlc -o reverser.byte reverser.ml
हम अपने नए निष्पादन योग्य डेटा को पाइपिंग द्वारा इसका परीक्षण करते हैं:
$ cat data.txt
one
two
three
$ ./reverser.byte < data.txt
three
two
one
reserver.ml प्रोग्राम एक अनिवार्य शैली में लिखा गया है। जबकि अनिवार्य शैली ठीक है, इसकी तुलना कार्यात्मक अनुवाद से करना दिलचस्प है:
let maybe_read_line () =
try Some(read_line())
with End_of_file -> None
let rec loop acc =
match maybe_read_line () with
| Some(line) -> loop (line :: acc)
| None -> List.iter print_endline acc
let () = loop []
फ़ंक्शन को शुरू करने के लिए धन्यवाद maybe_read_line का नियंत्रण प्रवाह पहले की तुलना में इस दूसरे संस्करण में बहुत सरल है।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow