Как преобразовать clojure.contrib.monads для использования с clojurescript?

Я хотел бы использовать библиотеку Clojure Monad clojure.contrib.monads в ClojureScript. Есть ли проверенная реализация, которая работает с ClojureScript, поскольку она не входит в стандартный дистрибутив ClojureScript?

(Я предполагаю, что мне, возможно, придется просто скопировать и вставить код из clj в cljs. Хотя как насчет макросов, поскольку они должны быть в файле clj)

Обновление: (правильно ли я думаю, что это два файла, которые мне понадобятся?)

Файлы

Хорошо, похоже, что этого не существует. Сначала мне придется пройти через реализацию в Clojure, чтобы убедиться, что eval и подобные вещи не используются, поскольку Clojurescript не поддерживает все функции Clojure.


person yazz.com    schedule 08.07.2012    source источник
comment
я думаю у вас правильный подход   -  person Arthur Ulfeldt    schedule 08.07.2012
comment
Я бы взглянул на новую версию библиотеки монад на github.com/clojure/algo.monads. .   -  person Sam Ritchie    schedule 10.07.2012
comment
Как библиотека Algo Monads связана с clojure.contrib.monads? Это форк или это совсем другая версия?   -  person yazz.com    schedule 12.07.2012
comment
algo.monads определенно правильный путь — код в репозитории Clojure contrib, на который вы ссылались, похоже, заброшен в пользу новой библиотеки.   -  person Jon Gauthier    schedule 15.07.2012
comment
Хорошо, спасибо Ганс. Я назначил вознаграждение за вопрос на тот случай, если кто-то уже сделал преобразование в Clojurescript (поскольку у меня не будет времени на пару недель)   -  person yazz.com    schedule 17.07.2012
comment
Хорошо, похоже, что этого не существует. Сначала мне придется пройти через реализацию в Clojure, чтобы убедиться, что eval и подобные вещи не используются, поскольку Clojurescript не поддерживает все функции Clojure.   -  person yazz.com    schedule 23.07.2012


Ответы (1)


Вы можете взглянуть на protocol-monads Джима Дьюи, для которых поддержка cljs была недавно добавлено — подробности см. в этой фиксации.

person spariev    schedule 05.02.2013