这个 CPS 的阶乘哪有问题么?

2014-12-04 04:35:12 +08:00
 ffffwh
def fact(k, n):
    if n == 0:
        k(1)
    else:
        return fact(lambda r: k(r * n), n - 1)
>>> a = fact(lambda x: x, 10)

a应该是那个10!数字的, 现在a不知道是什么。
把lambda x: x换成myprint的话到可以。其中

def myprint(x):
    print x
3148 次点击
所在节点    Python
9 条回复
whalegia
2014-12-04 05:49:55 +08:00
为什么我把 Lambda x:x 换成 myprint 也不行……
whalegia
2014-12-04 06:51:44 +08:00
我觉得啊,我觉得,这个其实没问题,阶乘其实算出来了,只不过没有传出来。
你试试设置一个全局变量,然后在 n==0 的情况下把计算结果赋值给全局变量,答案就出来了。。。
11
2014-12-04 07:30:46 +08:00
@whalegia 别闹。。楼主在说 CPS。。

问题在于你 k(1) 没返回啊。。 return k(1) 就行了
ffffwh
2014-12-04 07:37:10 +08:00
@11
就是这个..
whalegia
2014-12-04 08:31:48 +08:00
@11 对呀我就是这个意思啊。。。TAT
segmentfault
2014-12-04 11:11:14 +08:00
不来我站提问 (๑°3°๑) sf.gg
liprais
2014-12-04 12:01:30 +08:00
@segmentfault 这种无耻倒流量的方式真的很讨厌
luoyou1014
2014-12-04 12:30:48 +08:00
@liprais 这有什么无耻的。
233
2014-12-05 00:10:20 +08:00
@segmentfault 哈哈哈哈,别卖萌

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/151366

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX