F#如何正确调用let函数? [<EntryPoint>] 中的函数调用不工作
F# How to call let function correctly? Function call in [<EntryPoint>] isn't working
我是 F# 新手。我想要做的是多次调用 test
以打印出 Hello World
。在这个例子中,我想调用 test
三次。当我 运行 代码时,它只打印一次到控制台。即使没有 test
调用,它也会 运行s。我有以下代码:
open System
let test =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
[<EntryPoint>]
let main argv =
test
test
test
ignore(Console.ReadKey())
0
如果你想让test
成为一个函数,像这样声明它:
let test () =
... 并这样称呼它:
test ()
一个函数总是接收一个参数和returns一个值。在您看到多个参数的地方,这些参数被柯里化到一系列函数中,每个函数接收一个参数。这就是为什么您会看到像 int -> string -> string
.
这样的签名的原因
如果不需要参数,如本例,则使用单位,用()
表示。
test
不是一个函数,它是一个变量,所以你不能调用它。您只能访问它的值,即 ()
。访问一个值而不对其进行任何操作不会以任何方式影响程序的行为,这就是为什么在 main
函数中写入 test
没有任何效果。
如果您希望能够调用 test
,您需要通过给它一个参数使其成为一个函数。由于您似乎实际上不需要任何参数,因此可以使用 unit
作为参数类型。看起来像这样:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
相应的调用如下所示:
test ()
test
不是一个函数——它是一个 unit
类型的值。您必须添加括号:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
并这样称呼它:
[<EntryPoint>]
let main argv =
test()
test()
test()
ignore(Console.ReadKey())
0
我是 F# 新手。我想要做的是多次调用 test
以打印出 Hello World
。在这个例子中,我想调用 test
三次。当我 运行 代码时,它只打印一次到控制台。即使没有 test
调用,它也会 运行s。我有以下代码:
open System
let test =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
[<EntryPoint>]
let main argv =
test
test
test
ignore(Console.ReadKey())
0
如果你想让test
成为一个函数,像这样声明它:
let test () =
... 并这样称呼它:
test ()
一个函数总是接收一个参数和returns一个值。在您看到多个参数的地方,这些参数被柯里化到一系列函数中,每个函数接收一个参数。这就是为什么您会看到像 int -> string -> string
.
如果不需要参数,如本例,则使用单位,用()
表示。
test
不是一个函数,它是一个变量,所以你不能调用它。您只能访问它的值,即 ()
。访问一个值而不对其进行任何操作不会以任何方式影响程序的行为,这就是为什么在 main
函数中写入 test
没有任何效果。
如果您希望能够调用 test
,您需要通过给它一个参数使其成为一个函数。由于您似乎实际上不需要任何参数,因此可以使用 unit
作为参数类型。看起来像这样:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
相应的调用如下所示:
test ()
test
不是一个函数——它是一个 unit
类型的值。您必须添加括号:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
并这样称呼它:
[<EntryPoint>]
let main argv =
test()
test()
test()
ignore(Console.ReadKey())
0