हास्केल में क्यों forever
हास्केल `forever` प्रकार हस्ताक्षर
forever :: Monad m => m a -> m b
के प्रकार के हस्ताक्षर विशेष रूप से क्यों नहीं यह सिर्फ :: Monad m => m a -> m a
है है? निश्चित रूप से हम जिन मोनैड पर काम कर रहे हैं, वे forever
के माध्यम से आधा रास्ता नहीं बदलते हैं?
एक समारोह जैसे:
forever' :: Monad m => m a -> m a
forever' = forever
बिल्कुल वैसा ही काम करने के लिए लगता है।
इकाई के प्रकार 'है m' और यह नहीं बदलता है। परिणाम प्रकार 'बी' क्या परिवर्तन है। –