используя монады, чтобы сделать неудачные преобразования навалом? - PullRequest
5 голосов
/ 31 марта 2012

Просто начинаю грокать монады.Я думаю, что в Clojure чистота не так уж важна для меня.

У меня есть ряд бизнес-операций (составные преобразования), которые могут потерпеть неудачу.Это может быть абстрагировано с помощью монады с ошибками.

Некоторые бизнес-операции связаны с вводом-выводом базы данных, и мне нужно быстро выполнять операции массово.каждая массовая операция воздействует на набор независимых элементов, поэтому один сбой не должен вызывать сбоев во всем наборе.

если я просто думаю о том, что мои массовые преобразования представляют собой серию функций на одном объекте (карте), выполняемых внутриошибка монада, но действующая на независимые элементы в последующем?мне здесь помогает seq-monad?как я должен думать об этом?какие-нибудь другие идеи?

Я не вижу особой пользы в сочетании этого с IO-монадой для побочных эффектов моей базы данных в Clojure, вы думаете об этом?

1 Ответ

1 голос
/ 22 апреля 2012

Трудно сказать, что именно вам нужно, потому что ваше экономическое обоснование кажется немного сложным, но я думаю, что вы можете получить некоторое преимущество от использования библиотеки clojure.algo.monads.

Вы можете создать свой собственный вариант для монады ошибок или, возможно, монады, которая внутренне обрабатывает партии.

...