Решение на втора задача
-
Ето примерно решение:
def reduce(func, seq, init = None): if init is None and seq: init, *seq = seq for x in seq: init = func(init, x) return init def groupby(func, seq): groups = {} for item in seq: groups.setdefault(func(item), []).append(item) return groups def construct(functions, *args): return [f(*args) for f in functions] def curry(func, *args, **kwargs): def curried(*newargs, **newkwargs): merged_kwargs = kwargs.copy() merged_kwargs.update(newkwargs) return func(*(args + newargs), **merged_kwargs) return curried def compose(func, *functions): return lambda *args, **kwargs: reduce(lambda value, f: f(value), functions, func(*args, **kwargs))
06.04.2009