Haskell “打印”;"富",;当我按下回车键时,哈斯克尔
首先,我想用Haskell编写一个程序,当我按下s键时开始打印我女朋友的名字,然后当我再次按下s键时停止打印。但我不明白如何编写这样一个程序 相反,我尝试编写一个程序(在Redditer同事的帮助下),当我按下enter键时,它会打印“foo”,但似乎“foo”不想打印。为什么呢Haskell “打印”;"富",;当我按下回车键时,哈斯克尔,haskell,Haskell,首先,我想用Haskell编写一个程序,当我按下s键时开始打印我女朋友的名字,然后当我再次按下s键时停止打印。但我不明白如何编写这样一个程序 相反,我尝试编写一个程序(在Redditer同事的帮助下),当我按下enter键时,它会打印“foo”,但似乎“foo”不想打印。为什么呢 {-# language NumDecimals #-} module Main where import Control.Monad import Control.Concurrent (threadDelay)
{-# language NumDecimals #-}
module Main where
import Control.Monad
import Control.Concurrent (threadDelay)
import Control.Concurrent.MVar
import Control.Concurrent.Async (concurrently_)
keyWatcher :: MVar () -> IO ()
keyWatcher latch = forever (do _ <- getLine
_ <- takeMVar latch
_ <- getLine
putMVar latch())
loop :: MVar () -> IO ()
loop latch = forever (do swapMVar latch ()
threadDelay 1e6
putStrLn "Marika Boo!!!")
main :: IO ()
main = do latch <- newMVar ()
concurrently_ (loop latch) (keyWatcher latch)
{-#语言NumDecimals}
模块主要在哪里
进口管制
导入控制。并发(线程延迟)
导入控制.Concurrent.MVar
导入控制.Concurrent.Async(并发)
keyWatcher::MVar()->IO()
keyWatcher latch=forever(请勿发表评论,此对话已结束。@BhargavRao被移动的评论包括解释此问题为何属于“无法复制”的评论。为避免未来读者产生混淆,请。