On Jun 4, 2009, at 5:56 PM, Max Suica wrote:

But
(-> x identity) => (identity x) => x, so what our friend ozzi suggest
sounds pretty on the level.
If (identity x) is not equivalent to evaluating x, then, well, that's
not the identity function :)


You're correct that the result would be the same.

Meikel's point was that if we want to change the macro -> such that (- > x) is a legal expression whose value is x, it's slightly better (by saving one function call at runtime) for its expansion to be:

        x

rather than

        (identity x)

(defmacro ->
  "Threads..."
  ([x] x)
  ([x form] (if (seq? form)
              `(~(first form) ~x ~@(next form))
              (list form x)))
  ([x form & more] `(-> (-> ~x ~form) ~...@more)))

--Steve

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to