Что означает труба в определении класса? - PullRequest
27 голосов
/ 31 января 2009
class (Monoid w, Monad m) => MonadWriter w m | m -> w where 
   pass   :: m (a,w -> w) -> m a 
   listen :: m a -> m (a,w) 
   tell   :: w -> m () 

Что означает труба выше? Фрагмент взят из здесь .

1 Ответ

24 голосов
/ 31 января 2009

На самом деле, это " функциональная зависимость ". В этом случае это означает, что m однозначно идентифицирует w - тип m определяет тип w. ( Это может быть лучшей ссылкой.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...