многие fmap раскрываются в (.)?
                  
                  
                  
                  
                  
                  > :t fmap fmap fmap fmap
                  
                  
                  fmap fmap fmap fmap
                  
                  
                    :: (Functor f1, Functor f2, Functor f3) =>
                  
                  
                       f1 (f2 (a -> b)) -> f1 (f2 (f3 a -> f3 b))
                  
                  
                  > :t fmap fmap fmap fmap fmap
                  
                  
                  fmap fmap fmap fmap fmap
                  
                  
                    :: Functor f => (a1 -> b) -> (a2 -> a1) -> f a2 -> f b
                  
                  
                
когда мы уже делаем fmap fmap fmap, тут определяется тип функтора внешнего, так как аргумент - fmap, то и функтор - стрелка поэтому fmap fmap fmap это fmap . fmap
Обсуждают сегодня