我面临一个让我迷失方向的问题,因为它应该是一个非常基本的程序。我正在学习如何使用F#构建简单的控制台应用程序,但我无法弄清楚如何将整数作为标准输入传递给程序。请考虑:
open System
let square x = x * x
[<EntryPoint>]
let main (argv :string[]) =
printfn "The function will take an input and square it"
printfn "%d squared is %d" 12 (square 12)
Console.ReadLine() |> ignore
0
如何将值传递给printfn
和square
,就像我在C中所做的那样:
int main(){
int i;
scanf("%d", &i);
printf("\nThe value of variable i is %d.\n", i);
return 0;
}
我尝试调整let x = Console.ReadLine()
来获取整数,但没有明显的结果。我咨询过documentation,主要考虑字符串输入。我担心错过了一些重要的东西,以便正确理解F#的基础。从这个意义上说,任何建议都会受到高度赞赏。
答案 0 :(得分:4)
ReadLine ()
将返回一个字符串。正如@JohnPalmer所提到的,它需要被解析为int。以下程序应该为您提供基本的想法:
let rec input () =
printf "Input: "
match Core.int.TryParse (stdin.ReadLine ()) with
| true, i -> i
| _ ->
printfn "Invalid input, try again"
input ()
let square x = x * x
[<EntryPoint>]
let main _ =
printfn "The function will take an input and square it"
let i = input ()
printfn "%d squared is %d" i (square i)
0