
7 Apr
2021
7 Apr
'21
12:47 p.m.
I'm in Bird's *Thinking Functionally with Haskell* and the topic is natural transformations. He says filter p . map f = map f . filter (p . f) and he has a proof, but one step of the proof he goes from filter p . map f = concat . map (map f) . map (test (p . f)) to filter p . map f = map f . concat . map (test (p . f)) which means concat . map (map f) => map f . concat which means map (map f) = map f ... or I'm getting this step wrong somehow. To begin with, I'm having a hard time comprehending map(map f), Any ideas on how this is possible? LB