On Thu, Jun 17, 2010 at 11:01 PM, David Nolen <dnolen.li...@gmail.com> wrote: > What's the problem? > David
It's a composability issue. Elaborating on Anthony's explanation, let's say you call (fact (foo n)). Do you know what values of n, when passed to foo, produce a value large enough that fact will produce an exception? If you do know this, do you know enough about the internals of foo to know the best way to fix the problem? If you pass a bigint to foo, are you guaranteed to get a bigint as an output, or do you need to explicitly wrap a protective call to bigint between the two calls? In other words, do you call (fact (foo 20N)) or (fact (bigint (foo 20))? This imposes too high a burden on any programmer who cares about safety. -- 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