Как реализовать векторную сумму, используя функциональное программирование в python.
Этот код для работы п < 100, но не для п> 1000.Векторная алгебра в функциональном состоянии
from itertools import *
#n=10000 # do not try!!!
n=100
twin=((i,i**2,i**3) for i in xrange(1,n+1))
def sum(x=0,y=0):
return x+y
def dubsum(x,y):
return (reduce(sum,i) for i in izip(x,y))
print [ i for i in reduce(dubsum,twin) ]
Вы знаете, '(е (х) при х в итерацию)' не создает кортеж. Python видит круглые скобки вокруг одного объекта, генератора и просто возвращает этот объект. Если вы хотите создать кортеж, вам нужно использовать 'tuple (f (x) для x в iterable)'. –
Я не хотел создавать кортеж –