F# - 破碎的"然后"

ebb*_*ebb 2 f#

我正在尝试制作一个非常简单的应用程序,它会根据一天中的时间来迎接.我的代码是:

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
Run Code Online (Sandbox Code Playgroud)

现在是我的问题,如何只有一个函数调用有效,但三个都无论如何,打印他们的消息?

wme*_*yer 6

同意BrokenGlass.你可能想做的是:

clockMsg 0 8 (fun() -> printfn "Go to bed, %s!" name)
Run Code Online (Sandbox Code Playgroud)

而这种变化clockMsg:

let clockMsg min max todo = 
    if (DateTime.Now.Hour > min) && (DateTime.Now.Hour < max) then todo()
Run Code Online (Sandbox Code Playgroud)