Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defmacro defbinop [op zero]
- `(do
- (defmulti ~op nary-dispatch)
- (defmethod ~op ::nullary [] ~zero)
- (defmethod ~op ::n-ary
- [~'x ~'y & ~'more]
- (if ~'more
- (recur (~op ~'x ~'y) (first ~'more) (next ~'more))
- (~op ~'x ~'y)))
- (defmethod ~op [:j-long :j-long]
- [~'x ~'y]
- (clojure.core/~op ~'x ~'y))))
Advertisement
Add Comment
Please, Sign In to add comment