नया हास्केल प्रोग्रामर जल्द ही स्रोतों पर जायेगा यह देखने के लिए कि foldr
लागू किया गया है। खैर, कोड सरल होता था (नए आने वालों को OldList
या FTP
के बारे में जानने की उम्मीद न करें)।बताएं कि नया फ़ोल्डर कैसे काम करता है हास्केल
नया कोड कैसे काम करता है?
-- | Map each element of the structure to a monoid,
-- and combine the results.
foldMap :: Monoid m => (a -> m) -> t a -> m
foldMap f = foldr (mappend . f) mempty
-- | Right-associative fold of a structure.
--
-- @'foldr' f z = 'Prelude.foldr' f z . 'toList'@
foldr :: (a -> b -> b) -> b -> t a -> b
foldr f z t = appEndo (foldMap (Endo #. f) t) z
शायद नहीं एक नकली है, लेकिन [मैं 'foldr' से हो रही पर एक जवाब लिखा' foldMap' थोड़ी देर पहले] (http://stackoverflow.com/a/23319967/2751851)। उत्तर 'मोनॉयड' के साथ मूल परिचितता मानता है, इसलिए कृपया हमें बताएं कि क्या यह बहुत सी चीजों को मंजूरी देता है। – duplode