मैंने हाल ही में हैकेज पर मूल पुस्तकालयों को देखना शुरू किया, और एक आवर्ती मुहावरे है जिसे मैं समझ नहीं पा रहा हूं।एसटी मोनड घोषणा के सिंटैक्स
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 #)
समझ में नहीं आता: यहाँ ST module से एक उदाहरण है। मुझे लगता है कि दूसरा हैश एक अनबॉक्स किए गए मान को संदर्भित करता है, लेकिन शेष मेरे लिए एक रहस्य है (संभवतः "नया राज्य" के साथ कुछ करने के लिए)।
सामान्यतः, '# 'हास्केल में इसका मतलब है कि यह कुछ प्रकार के निम्न स्तर और/या आदिम सामान कर रहा है। नामों में '#' का उपयोग करने के लिए आपको 'MagicHash' भाषा एक्सटेंशन को सक्षम करना होगा। – Lazersmoke