gpt4 book ai didi

f# - 所有功能都立即运行,如何只运行主要功能?

转载 作者:行者123 更新时间:2023-12-01 15:14:40 25 4
gpt4 key购买 nike

我正在学习 F#,并且有以下代码:问题是当我运行项目时,所有功能都在立即运行。来自 C#,我想象只有 Main 函数会运行。如何解决这个问题?这是一些缩进问题吗?

open System
open System.Windows.Forms

let form
=
new Form
(
Width = 400,
Height = 300,
//Visible = false,
Text = "Hello World F#"
)

let MyFunction1
=
System.Diagnostics.Process.Start("calc.exe")

let AnotherFunction
=
let agora = DateTime.Now
let fn = @"C:\temp\testef.txt"
System.IO.File.WriteAllText (fn, "Olá " + agora.ToString())
System.Diagnostics.Process.Start("notepad.exe", fn)


[<EntryPoint>]
let main argv
=
let f = form.ShowDialog()
f |> Console.WriteLine
0

enter image description here

最佳答案

您需要为函数添加至少一个参数,否则它们将是不是函数的值。

如果您没有任何东西要传递给函数,那么它们应该接收一个单位参数,例如这里应该是:

let MyFunction1 ()
=
System.Diagnostics.Process.Start("calc.exe")

当 let 绑定(bind)没有参数时,它变成一个值并立即执行。

切换到函数式编程时的困惑在于,实际上函数也是值,是您可以传递的一等公民,但在 F# 等非惰性语言中,它们仅在您在调用点提供参数时才执行代码。

关于f# - 所有功能都立即运行,如何只运行主要功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46124230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com