Mar*_*ram 5 f# user-input factorial
我正在尝试在 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)
Run Code Online (Sandbox Code Playgroud)
它不断地给我错误消息“这个表达式的类型应该是“int”,但这里的类型是“string””。如果有人知道如何使其正常工作(或者至少可以告诉我需要做什么才能将用户输入的值转换为 INT,那将不胜感激。
F# 不会为您自动转换,因此您需要解析字符串:
open System
let rec fact x =
if x < 1 then 1
else x * fact (x - 1)
let input = Console.ReadLine()
Console.WriteLine(fact (Int32.Parse input))
Run Code Online (Sandbox Code Playgroud)
理论上,您需要转换回字符串才能打印它,但它是有效的,因为 Console.WriteLine 有一个重载,它接受一个整数并进行转换。
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |