Как оптимизировать эту короткую факториальную функцию в Scala? (Создание 50000 BigInts)

Я сравнил версию Scala

(BigInt(1) to BigInt(50000)).reduce(_ * _)

к версии Python

reduce(lambda x,y: x*y, range(1,50000))

и получается, что версия scala заняла примерно в 10 раз больше, чем версия python.

Я предполагаю, большая разница в том, что python может использовать свой собственный тип long вместо создания новых BigInt-объектов для каждого числа. Но есть ли обходной путь в скале?

Ответы на вопрос(4)

Ваш ответ на вопрос