Я пытался решить проблему с программированием в Hackerank, и мне было интересно, как читать строку целых чисел, разделенных пробелом, используя OCaml.
Я знаю, если входные целые числа разделены символом новой строки,
тогда мы могли бы сделать
let recread_lines () =
try line = read_line ()
in line:: read_lines()
with End_of_file->[]
, а затем преобразовать список в список int, используя
let ()=
let input = read_lines ()
in List.map int_of_string input.
Я также знаю, что мы можем прочитать первое целое число из строки целых чисел, выполнив:
let n1 =Scanf.scanf " %d" (fun x -> x)
Из C я знаю, что метод scanf сканирует строку в поисках структуры, определенной в параметре, а затем сохраняет отсканированные значения в переменных. Я не вижу использования (fun x-> x) в конце метода scanf в OCaml.
Я не знаю, как читать строку целых чисел, поэтому, если вы укажете мне правильное направление, я смогу решить эти проблемы!