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