F # sum машинная консоль - PullRequest
       14

F # sum машинная консоль

0 голосов
/ 08 января 2019

Я учусь использовать консоль в Visual Code (F #). Я хочу написать код, который вычисляет сумму каждого числа, которое я пишу в консоли. Например, когда я пишу 3 в консоли, код должен вернуть мне 3. После этого код задает мне следующий номер и вычисляет сумму старого результата с новым номером и так далее. Моя идея состояла в том, чтобы использовать функцию recusriv.

Вот пример:

42 ← -

42N ← -

1337 ← -

1379N ← -

4294967296 ← -

4294968675N ← -

5705031325 ← -

10000000000N ← -

Вот что я пробовал до сих пор:

let rec rechnen x =


let main(): unit =

    putline("Geben Sie Zahlen zum Addieren ein:")
    let Zahl = getline()
    rechnen(Zahl)

1 Ответ

0 голосов
/ 09 января 2019

Ваша рекурсивная функция должна иметь аргумент типа integer.

Он должен прочитать ввод в консоли (Console.ReadLine()) и попытаться разобрать его в целое число (Int32.TryParse()).

Если синтаксический анализ завершился успешно, он добавляет результат анализа в аргумент, выводит эту сумму на консоль (printfn) и рекурсивно вызывает функцию, передавая ей сумму.

Если синтаксический анализ завершился неудачно (завершение рекурсии), вы можете вернуть аргумент как результат или просто распечатать его.

let rec rechnen x =
    match Int32.TryParse(Console.ReadLine()) with
    | true, i -> printfn "%dN" (x + i) 
                 rechnen (x + i)
    | _       -> printfn "Gesamt: %d" x

let main(): unit =
    printfn "Geben Sie Zahlen zum Addieren ein:"
    rechnen 0 
...