2016-05-13 38 views
0

望着这ZeroMQ HelloWorldClient.hs代码片段:使用(_ < - f)而不是f单独使用?

forM_ [1..10] $ \i -> do 
    liftIO . putStrLn $ "Sending Hello " ++ show i ++ "…" 
    send requester [] "Hello" 
    _ <- receive requester 
    liftIO . putStrLn $ "Received World " ++ show i 

有为什么_ <- receive requester不会被写成receive requester任何理由?

此外,一般来说,是否有任何理由使用_ <- f(其中f : Monad m => m a)而不是f

回答

8

这是一种常见的方式,用于在您有类型m a,其中a不是()时,关于丢弃值的警告消失。另一种常见的方法是使用void

+0

你能解释一下,如果你提到它会有多少空白? –

+0

@KevinMeredith'void(receive requestester)'或者更方便'void $ receive requester' – chi