Python 3.2 のドキュメントは、function を含むCollin Winter のfunctional
モジュールcompose
を参照しています。
compose() 関数は、関数合成を実装します。つまり、内部からの戻り値が直接外部に渡されるように、外部および内部の callable のラッパーを返します。
残念ながら、このモジュールは 2006 年 7 月以降更新されていません。代替品がないか気になります。
今のところ、compose
関数だけが必要です。次の元のfunctional.compose
定義は Python 3 でも有効ですか?
def compose(func_1, func_2, unpack=False):
"""
compose(func_1, func_2, unpack=False) -> function
The function returned by compose is a composition of func_1 and func_2.
That is, compose(func_1, func_2)(5) == func_1(func_2(5))
"""
if not callable(func_1):
raise TypeError("First argument to compose must be callable")
if not callable(func_2):
raise TypeError("Second argument to compose must be callable")
if unpack:
def composition(*args, **kwargs):
return func_1(*func_2(*args, **kwargs))
else:
def composition(*args, **kwargs):
return func_1(func_2(*args, **kwargs))
return composition
このSOの質問は多少関連しています。Python が の特別な構文をサポートする必要があるかどうかを尋ねますcompose
。