Можно ли программно строить понимания для обработки переменного количества аргументов, как в Haskell ?
Например, как расширить этот внешний продукт для словарей на более чем 2 словаря:
def outer(f,g):
return lambda d1,d2: {f(k1,k2):g(v1,v2) for k1,v1 in d1.items() for k2,v2 in d2.items()}
Дано:
d1 = {'a':1, 'b':2}
d2 = {'a':10, 'b':11, 'c':12}
и эти вспомогательные функции, которые работают с переменными аргументами:
def string_join(*arg):
return ''.join(tuple(arg))
def arg_sum(*arg):
return sum(tuple(arg))
Тогда:
outer(string_join,arg_sum)(d1,d2)
{'aa': 11, 'ab': 12, 'ac': 13, 'ba': 12, 'bb': 13, 'bc': 14}
Можно ли распространить удобное понимание на переменную arg (d1, d2, d3 ...) или использовать для циклов?