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ď č. 1Môž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ší.