lomeo: (лямбда)
Dmitry Antonyuk ([personal profile] lomeo) wrote2006-07-14 06:05 pm

fmap = liftM

Только сейчас сообразил, что это одно и то же для ВСЕХ монад.
До сих пор думал, что они совпадают у IO и списка.

А вот дефолтную реализацию метода класса, от которого зависит определяемый класс, нельзя описать. А то можно было бы

class Functor m => Monad m where
    return :: m a
    (>>=) :: m a -> (a -> m b) -> m b

    instance Functor m where
        fmap f m = m >>= (return . f)


Ну и хорошо, что нельзя. А то от Functor много классов могут зависеть.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting