Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Опечатка в главе 8.6 "Композиция монад" (порядок в паре) #93

Open
Kakadu opened this issue Apr 18, 2018 · 2 comments

Comments

@Kakadu
Copy link

Kakadu commented Apr 18, 2018

В определении return перепутаны элементы пары. Должно быть

type State s = StateT s Identity 
newtype StateT s m a= StateT { runStateT :: s->m (a,s) }
newtype Identity a=Identity{ runIdentity::a }

instance (Monad m) => Monad (StateT s m) where
  return a = StateT $ \s -> return (s, a)
  a >>= f  = StateT $ \s0 -> 
     runStateT a s0 >>= \(b, s1) -> runStateT (f b) s1

instance Monad m => Applicative (StateT s m) where
  pure = return
  (<*>) f arg = f >>= \f -> arg >>= \arg -> return $ f arg

instance Monad m => Functor (StateT s m) where
  fmap f x = pure f <*> x
@anton-k
Copy link
Owner

anton-k commented Apr 20, 2018

Спасибо, зоркий глаз :)

У меня к сож сейчас нет возможности обновлять книгу, просто кроме принятия в коде ещё обновить пдф и сайт, но нет возможности качественно этим сейчас заниматься.

Я могу принять PR, но на видимом контенте это скорее всего не отобразится

@anton-k
Copy link
Owner

anton-k commented Apr 20, 2018

Я планирую этим заняться, но пока не знаю когда..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants