Quick actions

cmd+k|ctrl+k

Navigation

Languages

CPS in Python

Snippet info

Language

Python

Visibility

public

Author

steinwaywhw

Created

2016-09-28T01:56:49Z

Updated

2016-09-28T02:25:16Z




def fact(n, k):
    if n == 0:
        k(1)
    else:
        fact(n-1, lambda x: k (n * x))
        
fact(10, lambda x: print(x))

def fib(n, k):
    if n == 0:
        return k(0)
    elif n == 1:
        return k(1)
    else:
        return fib(n-1, lambda x: 
                fib(n-2, lambda y:
                 k(x+y)))
                    
print(fib(10, lambda x: x))

def ackermann(m, n, k):
    if m == 0:
        k(n+1)
    elif n == 0:
        ackermann(m-1, 1, k)
    else:
        ackermann(m, n-1, lambda x: 
            ackermann(m-1, x, k))
            
ackermann(3,2,lambda x: print(x))
                
INFO