私は著者が望むものは、機能的な連鎖の何らかの形だと思います。一般に、これは困難であるが、リスト内の前の機能は同じであるため、
- は、単一の引数を取る関数、
- 戻り単一値に対して
- 戻り値ことも可能です次の関数の入力型と同じ型のリストはリストです
ここで、1つの引数を取り、1つの引数を返す必要がある関数のリストがあります。また、タイプは一貫しています。このような何か...
functions = [np.sin, np.cos, np.abs]
チェーン一緒にこれらのすべての一般関数を記述することは可能でしょうか?まあグイドは特にmap
、reduce
実装好きではない、けれども、我々はreduce
を使用することができますし、...このような
何かにそれらを取るとしていた...
>>> reduce(lambda m, n: n(m), functions, 3)
0.99005908575986534
今、私たちはどのように行いますこれを行う関数を作成しますか?さて、値をとり関数を返す関数を作成してください:
import numpy as np
def chainFunctions(functions):
def innerFunction(y):
return reduce(lambda m, n: n(m), functions, y)
return innerFunction
if __name__ == '__main__':
functions = [np.sin, np.cos, np.abs]
ch = chainFunctions(functions)
print ch(3)
出典
2016-05-26 01:46:42
ssm
'sinrad = lambda n:math.sin(math.radians(n))'? – TessellatingHeckler
明確にするために、記述しているのは変数に複数の関数を割り当てることではありません。これは、他の2つの関数の構成である単一の関数を割り当てています。 – BrenBarn