I believe your guess is right - this is a hack to work with older versions (pre 1.3) of Clojure where the reader didn't support ' as a constituent character in symbols.
On Friday, August 5, 2016 at 12:28:08 PM UTC-5, Shannon Severance wrote: > > Lines 57--62 of > https://github.com/clojure/math.numeric-tower/blob/master/src/main/clojure/clojure/math/numeric_tower.clj > > > > ;; so this code works with both 1.2.x and 1.3.0: > (def ^{:private true} minus (first [-' -])) > (def ^{:private true} mult (first [*' *])) > (def ^{:private true} plus (first [+' +])) > (def ^{:private true} dec* (first [dec' dec])) > (def ^{:private true} inc* (first [inc' inc])) > > > I was wondering why (first [*' *]) is used instead of just *. > > My guess, but I do not know how to verify: > > 1. IIRC early versions of Clojure defaulted to auto-promotion > arithmetic operators. > 2. My guess the default was changed to not permote between 1.2.x and > 1.3.0. > 3. Total guess, the 1.2.x reader treat the ' at the end of a symbol as > being it's own thing and change to (quote ..) > 4. So that in 1.2.x [*' *] would become [* (quote *)], and first would > get *, and * auto promoted in 1.2.x. In 1.3.0 first gets the > auto-promotion > version *'. > > But that a total guess. Why is this construction used? > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.