metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-11-25 04:53 pm

mapM для списков

Читал про монады, наткнулся на несамочевидную шизу с mapM для списков:

mapM (\x -> [x-1, x+1]) [10,20,30]
[ [9,19,29], [9,19,31], [9,21,29], [9,21,31], [11,19,29], [11,19,31], [11,21,29], [11,21,31] ]

Пришлось лезть в ghci и описание устройства mapM, чтобы не сойти с ума.

[identity profile] mr-aleph.livejournal.com 2009-11-25 05:23 pm (UTC)(link)
ну это вполне очевидно, если вспомнить о том, что список как монада --- это "множественность миров".

но первую минуту идёт дым из головы.