Personally, I have no real interest in bigints, but I'm glad that they are there, and that arithmetic code supports them polymorphically.
I'm not sure what I think regarding non-promoting numeric operators. They are ok, but they seem to add complexity to the language, and they don't look very newbie friendly. I think if we had them, promoting ops should be the primed ones, and they would mostly be used in library functions where performance is important. > but > (loop [n 1 r 1](if (zero? n) r (recur (dec n) (* r 0.2)))) > does not [work] This seems to be particularly nasty. Clojure is statically typing r on the assumption that just because the init value of r fits a primitive int, that it can never be anything else. Promoting operators do no good, because the variable slot for the loop var has already been assumed to be a primitive, so it isn't possible to promote it. Is there any possibility that loop variables could be assumed to be boxed numerics, unless type hinted to something else? So: (loop [^int n 1 r 1](if (zero? n) r (recur (dec n) (* r 0.2)))) Numeric literals would still produce primitives where possible, but would get auto-boxed in loop initialisers. I think this option wouldn't have any nasty surprises. -- Dave -- 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