- #!/usr/bin/python
- from go import *
- def mylist(lst):
- now = 0
- stop = len(lst)
- while now < stop:
- yield lst[now]
- now += 1
- #@go
- def _mylist() :
- for i in ["aa","bb","cc"]:
- print i
- for i in mylist(["aa","bb","cc"]):
- print i
- def f1(n) :
- return n if n < 2 else \
- f1(n-2) + f1(n-1)
- #@go
- def _f1() : print 32, f1(32)
- def f(n):
- a, b = 0, 1
- for i in range(0, n):
- a, b = b, a + b
- print a,b
- return a
- #@go
- def _f(): print 10,f(10)
- def args(*args):
- print args
- # prints a tuble:
- # and immutable list (can't change values, can access by index)
- #@go
- def _args() : print args(1,2,3,4,5)
- def memo(f):
- memo = {}
- def wrapper(*args):
- if args in memo:
- return memo[args]
- else:
- tmp = f(*args)
- memo[args] = tmp
- return tmp
- return wrapper
- @memo
- def f2(n) :
- return n if n < 2 else f2(n-2) + f2(n-1)
- @go
- def _f2() : print 320,f2(320)
- from sys import argv
- if len(argv)> 1:
- n = int(argv[1])
- print n, f1(n)