Кажется, это происходит все время. Например:
(apply * (range 1 101))
дает ошибку
ArithmeticException integer overflow clojure.lang.Numbers.throwIntOverflow (Numbers.java:1374)
Пока в Ruby 1.9.2 (концептуально) эквивалентный код,
(1..100).reduce(:*)
дает желаемый результат
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Очевидно, что два языка сильно различаются под капотом, но похоже, что оба они могут справиться с этим вычислением без проблем. Я здесь что-то не так? Или я неправильно понимаю?