Я сравнил версию scala
(BigInt(1) to BigInt(50000)).reduce(_ * _)
с версией python
reduce(lambda x,y: x*y, range(1,50000))
, и оказалось, что версия scala заняла примерно в 10 раз длиннее версии на питоне.
Я предполагаю, что большая разница в том, что python может использовать свой собственный длинный тип вместо создания новых BigInt-объектов для каждого числа. Но есть ли в scala обходной путь?