2014-09-23 36 views
1

語境:

do state1 <- act state 
    dispatch $! state1 

$!做些什麼?

E.g.爲什麼這裏不只是dispatch state1

+7

你好鄰居,你聽說過關於我們的領主和救世主[Hoogle](http://www.haskell.org/hoogle/?hoogle=%24%21)的好消息嗎? – 2014-09-23 05:57:13

回答

6

$!嚴格應用,從dispatch state1所不同的是state1保證要被評估,而不只是保持爲懶惰形實轉換。它被定義爲

f $! x = x `seq` f x 

以這種方式強制進行評估對於效率問題(例如防止內存泄漏)非常重要。