gpt4 book ai didi

haskell - Haskell 有没有办法检查自上一个当前时间以来是否已经过了一分钟?

转载 作者:行者123 更新时间:2023-12-02 17:54:57 25 4
gpt4 key购买 nike

我是 Haskell 新手,我正在尝试设置一个机器人,根据一分钟的过去情况为您提供分数

我尝试寻找获取当前时间并在其上添加一分钟的方法,并检查是否等于一分钟过去的时间,例如 addUTCTime。

我希望它看起来像这样

if(timeNow == timeInAMinute) then sendMsg ("You got a point added!") else return ()

我还没有取得任何成果,所以我希望有一些实际的方法来解决这个问题。我还得处理 IO 的事情。那么回到我的问题,有没有办法检查当前时间是否已经过去了一分钟?

最佳答案

这基本上可以满足您的要求:

import Data.Time

main :: IO ()
main = do
t0 <- getCurrentTime
go t0
where go tl = do
t <- getCurrentTime
if t >= 60`addUTCTime`tl
then do
putStrLn "You got a point!"
go t
else go tl

当然,这种在递归循环中的忙碌等待并不完全有效。一个更简单、更好的解决方案就是

import Control.Concurrent (threadDelay)
import Control.Monad (forever)

main :: IO ()
main = forever $ do
threadDelay $ 60 * 10^6
putStrLn "You got a point!"

关于haskell - Haskell 有没有办法检查自上一个当前时间以来是否已经过了一分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58646633/

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