我目前正在尝试制作一个非常简单的应用程序,该应用程序会根据一天中的时间而打招呼。我的代码是:
open System
let read() = Console.Read()
let readLine() = Console.ReadLine()
let clockMsg min max todo =
if (DateTime.Now.Hour > min) && (DateTime.Now.Hour < max) then todo
let name = readLine()
clockMsg 0 8 <| printfn "Go to bed, %s!" name
clockMsg 8 12 <| printfn "Good morning, %s!" name
clockMsg 12 18 <| printfn "Good afternoon, %s!" name
read() |> ignore
现在我的问题是,只有一个函数调用是有效的,但是这三个函数无论如何都将打印其消息?
最佳答案
同意BrokenGlass。您可能想做的是:
clockMsg 0 8 (fun() -> printfn "Go to bed, %s!" name)
这是
clockMsg
中的更改:let clockMsg min max todo =
if (DateTime.Now.Hour > min) && (DateTime.Now.Hour < max) then todo()
关于f# - F#- splinter 的 “then”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5287023/