Писатель против ПисателяT в Хаскеле - PullRequest
9 голосов
/ 03 октября 2011

В чем разница между Writer и WriterT в Haskell? Один предпочтительнее другого?

Ответы [ 2 ]

16 голосов
/ 03 октября 2011

Разница в том, что Writer - это монада, тогда как WriterT - это преобразователь монад , т. Е. Вы даете ему некоторую базовую монаду, и она возвращает вам новую монаду с функциями "писателя"наверху.Если вам нужны только специфичные для писателя функции, используйте Writer.Если вам нужно объединить его эффекты с какой-нибудь другой монадой, такой как IO, используйте WriterT.

4 голосов
/ 03 октября 2011

Чтобы добавить к превосходным объяснениям выше, я хотел бы также указать на эту статью.Мне немного помогло:

Шаг за шагом монадные трансформаторы

...