我正在阅读Data.Map的源代码,我发现 !() 用于data Map k a
.
data Map k a = Tip
| Bin {-# UNPACK #-} !Size !k a !(Map k a) !(Map k a)
我发现这!( )
不会影响模式与数据的匹配方式。在mapWithKey的功能中,patten匹配还是针对5件事。所以我不认为它是一个运营商。
mapWithKey f (Bin sx kx x l r)
google 后,我发现!( )
可能与-XBangPatterns
用于惰性评估的哪个有关。我对吗 ?还是出于其他目的?