呵呵,基本上用lambda可以玩出许多花样出来。
至于那个op函数,只要满足它接收2个参数,都可以用在那里。
就实用性而已,python要比scheme好多了,所以真要玩FP的话,推荐大家搞python。我用scheme只不过是因为sicp是用scheme来教的,汗...
ps:“Foo(lambda x, y: x+y, 1, 2)”这个有点C#2.0里面匿名方法的味道,呵呵。(那叫什么来着,谓词?)
如果要玩Functional Programming,还是用O'Caml或者Haskell 吧
To linkcd: Lu Feng兄,您对于op函数的解释,偶还是不太懂哦。 在scheme中,函数是怎样被调用的呢? 我看到了你文章中提到的(+, 1, 2),有点迷惑。
各们老大,我想学一下python,但想知道学了之后对我的工作有什么帮助吗?现在我是写C#的。
To 81: 我现在手头上的工作跟Python一点关系都没有,但是我仍然会去学。因为它真的很高效,很简单,能够帮助自己更加关注需要解决的问题。把语言乃至于计算机看成是工具,只要你能够利用它来解决问题,那么学习就是有价值的。
@ FantasySoft
请看这里
http://linkcd.cnblogs.com/archive/2005/07/20/196841.html
@81:
要说没用,scheme在国内更派不上用场,不过呢,我感觉学习FP是我继领悟OO之后,第二次思想的飞跃哦,呵呵
谢谢各位指点,这阵子忙完后,学习下python,一直听别人说他。
>>> import operator
>>> def Foo(op, x, y):return op(x,y)
...
>>> Foo(operator.add,1,2)
3
>>>