2011-11-05 18 views
1

を印刷する方法を私は2つの(多くの)ラムダありますラムダ式

myFoo = lambda x,y: x + y 
mySpecFoo = lambda x: myFoo(x, 1) 

は、私がmySpecFooの式を結果として印刷したいが。

x = var('x') 
print(mySpecFoo(x)) 

のようななめらかと私は出力に表示する:

lambda x: x + 1 

あなたがこれを行う方法を知っていますか? ありがとうございました!

答えて

3

これは「象徴的な評価」と呼ばれ、あなたがこれを行うには、いくつかの外部ライブラリを必要とし、例えば、SymPy用されています

>>> import sympy 
>>> myFoo = lambda x,y: x + y 
>>> mySpecFoo = lambda x: myFoo(x, 1) 
>>> x = sympy.var("x") 
>>> print mySpecFoo(x) 
1 + x 
+0

または[セージ](http://www.sagemath.org/)。しかし、セージは*巨大です! – Blender

+0

感謝、セージはクールですが、ウィンドウのシェルはまだdevの下にあります:( – Vladimir