【发布时间】:2017-09-03 10:12:30
【问题描述】:
我最近开始研究 Hackage 上的核心库,并且有一个反复出现的习语我不明白。这是来自ST module 的示例:
instance Monad (ST s) where
{-# INLINE (>>=) #-}
(>>) = (*>)
(ST m) >>= k
= ST (\ s ->
case (m s) of { (# new_s, r #) ->
case (k r) of { ST k2 ->
(k2 new_s) }})
特别是,我不明白(# new_s, r #)。我假设第二个哈希是指一个未装箱的值,但其余的对我来说是个谜(大概与“新状态”有关)。
【问题讨论】: