我正在尝试制作一个非常简单的应用程序,它会根据一天中的时间来迎接.我的代码是:
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)
现在是我的问题,如何只有一个函数调用有效,但三个都无论如何,打印他们的消息?
同意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)