Entrada eficiente no OCaml

Suponha que eu esteja escrevendo um programa OCaml e minha entrada seja umaampla fluxo de números inteiros separados por espaços, ou seja,

let string = input_line stdin;;

retornará uma string que se parece, por exemplo, "2 4 34 765 5 ..." Agora, o próprio programa terá mais dois valores iej que especificam umpequeno subseqüência dessa entrada na qual o procedimento principal ocorrerá (digamos que o procedimento principal seja encontrar o máximo desta sub-lista). Em outras palavras, todo o fluxo será inserido no programa, mas o programa acabará atuando apenas em um pequeno subconjunto da entrada.

Minha pergunta é: qual é a melhor maneira de converter a parte relevante do fluxo de entrada em algo utilizável, ou seja, uma sequência de entradas? Uma opção seria converter toda a cadeia de entrada em uma lista de entradas usando

let list = List.map int_of_string(Str.split (Str.regexp_string " ") string;;

e depois que os limites i e j forem inseridos, localize-se facilmente a sub-lista relevante e seu máximo. O problema é que o pré-processamento inicial do fluxo grande consome imensamente tempo.

Existe uma maneira eficiente de localizar a pequena sub-lista diretamente do fluxo grande, ou seja, processar a entrada junto com o procedimento principal?

questionAnswers(2)

yourAnswerToTheQuestion