/ / Čítanie čísel oddelených medzerami v OCaml - ocaml

Čítanie čísel oddelených medzerami v OCaml - ocaml

Aký je najjednoduchší spôsob, ako čítať veľacelé čísla od stdin oddelené medzerami? V tomto prípade viem, koľko ich existuje, aj keď neznámy prípad zodpovedá tej chvíli (std :: cin >> n) {a.push_back (n); } v C ++ by bolo pekné vedieť.

odpovede:

3 pre odpoveď č. 1

Môžete to skúsiť Scanf modul. Pozrite si jeho dokumentáciu tu.

let get_ints queue =
let aux () =
Scanf.scanf "%d " (fun n -> Queue.push n queue); aux ()
in
try aux () with _ -> ()

Iný štandardný spôsob vám to umožní, môžete sa pozrieť na ocamllex, str alebo Genlex, Samozrejme, v OCaml existujú aj iné lexingové / parsovacie knižnice, ale bola by to celkom debata o tom, ktorý z nich je najlepší.