3 ms·
Right, that’s what I said. Just because it’s efficient to implement one language that way doesn’t mean it’s efficient to do that for every language in the same
by evincarofautumn 14y ago
Right, that’s what I said. Just because it’s efficient to implement one language that way doesn’t mean it’s efficient to do that for every language in the same family. :)
With non-variadic arithmetic functions:
(defn add [x]
(cons (+ (first x) (second x)) (rest (rest x))))
Your “postfix” function can remain a simple “reduce”, but can be totally agnostic of function arity. That frees you up to write the basic combinators:
(defn dup [x]
(cons (first x) x))
(defn zap [x]
(rest x))
(defn swap [x]
(cons (second x) (cons (first x) (rest (rest x)))))
(defn ap [x]
(apply (first x) (rest x)))
...