1. #!/usr/bin/python
  2.  
  3. from go import *
  4.  
  5. def mylist(lst):
  6. now = 0
  7. stop = len(lst)
  8. while now < stop:
  9. yield lst[now]
  10. now += 1
  11.  
  12.  
  13. #@go
  14. def _mylist() :
  15. for i in ["aa","bb","cc"]:
  16. print i
  17. for i in mylist(["aa","bb","cc"]):
  18. print i
  19. def f1(n) :
  20. return n if n < 2 else \
  21. f1(n-2) + f1(n-1)
  22.  
  23. #@go
  24. def _f1() : print 32, f1(32)
  25.  
  26. def f(n):
  27. a, b = 0, 1
  28. for i in range(0, n):
  29. a, b = b, a + b
  30. print a,b
  31. return a
  32.  
  33. #@go
  34. def _f(): print 10,f(10)
  35.  
  36. def args(*args):
  37. print args
  38.  
  39.  
  40.  
  41. # prints a tuble:
  42. # and immutable list (can't change values, can access by index)
  43. #@go
  44. def _args() : print args(1,2,3,4,5)
  45.  
  46. def memo(f):
  47. memo = {}
  48. def wrapper(*args):
  49. if args in memo:
  50. return memo[args]
  51. else:
  52. tmp = f(*args)
  53. memo[args] = tmp
  54. return tmp
  55. return wrapper
  56.  
  57. @memo
  58. def f2(n) :
  59. return n if n < 2 else f2(n-2) + f2(n-1)
  60. @go
  61. def _f2() : print 320,f2(320)
  62.  
  63. from sys import argv
  64.  
  65. if len(argv)> 1:
  66. n = int(argv[1])
  67. print n, f1(n)