这编译和工作:
let rec HelloEternalWorld _ = Console.ReadLine() |> printf "Input: %s\n" HelloEternalWorld 0 HelloEternalWorld 0
这不编译:
let rec HelloEternalWorld = Console.ReadLine() |> printf "%s\n" HelloEternalWorld HelloEternalWorld
我试着理解为什么不呢?
所有你缺少的是括号,因为如果它是:
let rec HelloEternalWorld() =
Console.ReadLine() |> printf "%s\n"
HelloEternalWorld()
Run Code Online (Sandbox Code Playgroud)
要定义不带参数的函数,需要使用括号将函数与简单值区分开来.