我需要編寫一個'序列,也許m'(monad結合序列monad的行爲與可能monad)的幫助。寫一個序列 - 也許monad使用clojure.algo.monads
該規則應當是:
- 如果任何輸入是零,那麼整個表達失敗。
- 否則,就像序列單子會做的那樣評估身體。
(domonad sequence-maybe-m [a [1 2 3] b [1 2 3]] (+ a b)) ;; => (2 3 4 3 4 5 4 5 6) (domonad sequence-maybe-m [a [1 2 3] b nil] (+ a b)) ;; => nil (domonad sequence-maybe-m [a [1 2 3] b (range a)] (+ a b)) ;; => (1 2 3 3 4 5) same as 'for' (domonad sequence-maybe-m [a [1 2 3] b [1 nil 3]] (+ a b)) ;; => nil
這將是一個獎金,如果它與clojure.algo.monads庫兼容:
(defmonad sequence-maybe-m
[m-result <...>
m-bind <...>
m-zero <...>
m-plus <...>
])
其中< ...>的功能。
輝煌。謝謝! – zcaudate