Я довольно новичок в F #, поэтому вопрос может быть довольно элементарным. Тем не менее, я не мог найти никаких предложений о ТАК.F #: Создание набора целых чисел из пользовательского ввода
Я играю с алгоритмической задачей в F #. В качестве первого шага я хочу создать коллекцию целых чисел из ввода пользовательской консоли. Количество входов не определено. И я не хочу использовать любые петли while
. Я бы предпочел как можно больше идиоматического подхода.
В рекурсивной функции я читаю результат и разбираю его с Int32.TryParse
. Я сопоставляю результат bool с помощью match ... with
. В случае успеха я добавляю новое значение в коллекцию. В противном случае я возвращаю коллекцию.
Ниже мой код:
let rec getNumList listSoFar =
let ok, num = Int32.TryParse(Console.ReadLine())
match ok with
| false -> listSoFar
| true -> getNumList num::listSoFar
let l = getNumList []
И Я получаю ошибку:
Несоответствие типа. Ожидая «в
, но учитывая » список
Я знаю, я использую типы неправильно, хотя я не понимаю, что именно не так. Любое объяснение высоко ценится.