10 lines
348 B
Plaintext
10 lines
348 B
Plaintext
let rec select choices prompt = (* "choices" is an array of strings *)
|
|
if Array.length choices = 0 then invalid_arg "no choices";
|
|
Array.iteri (Printf.printf "%d: %s\n") choices;
|
|
print_string prompt;
|
|
let index = read_int () in
|
|
if index >= 0 && index < Array.length choices then
|
|
choices.(index)
|
|
else
|
|
select choices prompt
|