Итак, я пытаюсь сделать простую факториальную функцию в F #, которая использует значение, введенное пользователем (с помощью консоли я не знаю, делает ли это любая разница), но я не могу найти какое-либо решение, чтобы иметь возможность использовать значение от пользователя в моей функции.Как я могу использовать введенное пользователем значение в моей функции в F #
open System
let rec fact x =
if x < 1 then 1
else x * fact (x - 1)
let input = Console.ReadLine()
Console.WriteLine(fact input)
Он постоянно дает мне ошибку говоря «Это выражение, как ожидается, имеют тип„ИНТ“, но здесь имеет тип„строка“». Если кто-нибудь имеет представление о том, как заставить его работать должным образом (или, по крайней мере, может сказать мне, что мне нужно сделать, чтобы преобразовать введенное пользователем значение в INT, это было бы весьма полезно.
Благодарим за любую помощь.
Будет ли это не взорвать во время выполнения? Также как 'somevalue |> int'. Это будет противоречить F # компиляции безопасности, чтобы рассказать вам об опасностях во время компиляции вместо того, чтобы позволить вашему приложению взорваться во время выполнения. – HMR
@ HMR Конечно, он будет дуть во время выполнения, я не рекомендую использовать этот код в производстве или давать советы по лучшим практикам, просто отвечая на вопрос. Для производственного кода лучшим способом было бы использовать функции '' tryParse'', но для этого требуется понимание того, как с этим бороться, и это, похоже, вопрос новичков. – Gustavo