2016-05-13 26 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