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

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

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

с версией python

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

, и оказалось, что версия scala заняла примерно в 10 раз длиннее версии на питоне.

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

14
задан Luigi a.k.a. Rhys 23 October 2011 в 01:35
поделиться