"वापसी एक" कुछ इकाई के संदर्भ में एक रैप करने के लिए माना जाता है:क्यों कुछ भी वापस नहीं लौटाता है?
*Main> :i return
class Applicative m => Monad (m :: * -> *) where
...
return :: a -> m a
...
-- Defined in ‘GHC.Base’
अगर मैं GHCi पूछना क्या "वापस कुछ नहीं" के प्रकार है, यह है कि के अनुरूप है:
*Main> :t return Nothing
return Nothing :: Monad m => m (Maybe a)
लेकिन अगर मैं इसे का मूल्यांकन, मुझे कोई बाहरी इकाई देखते हैं, सिर्फ भीतरी शायद:
*Main> return Nothing
Nothing
GHCi आईओ इकाई को चूक करता है, तो आप एक निर्दिष्ट नहीं करते। यह सिर्फ 'आईओ (शायद ए)' – 4castle
@ 4castle की सामग्री को प्रिंट कर रहा है, शाकाफ को थोड़ा गलत मिसाल देने के लिए: एक 'आईओ (शायद ए)' में 'शायद एक' है जिसमें '/ bin/ls' में एक सूची है फाइलों का यह थोड़ा सा pedantic लग सकता है, लेकिन यह 'आईओ (शायद ए) 'की सामग्री छाप नहीं है। यह एक 'आईओ (शायद ए)' चला रहा है और फिर उसके परिणामों को प्रिंट कर रहा है। भेद महत्वपूर्ण हो सकता है। –
@ डेविड यॉन्ग मुझे व्यक्तिगत रूप से महत्वपूर्ण होने का गौरव नहीं मिलता है, क्योंकि यह मूल्य के आंतरिक प्रतिनिधित्व को जानने के लिए आईओ मोनैड का काम है। तर्क उद्देश्यों के लिए, मैं आम तौर पर कंटेनरों के रूप में सभी मोनैड के बारे में सोचता हूं (चाहे वे वास्तव में मूल्य रखते हों या नहीं)। – 4castle