1. #!/usr/bin/python -B
  2. #global
  3.  
  4. import math
  5. from go import *
  6.  
  7. root = math.sqrt
  8.  
  9. x=2
  10.  
  11. @go
  12. def _x():
  13. "example of global"
  14. print x
  15.  
  16. def fred(y,x=100,
  17. z=2,pretty = lambda x: int(x)):
  18. "e.g.1) var scope; 2) code as data"
  19. print y+z
  20. print "x",x
  21. print "pretty",pretty(y+z)
  22. print root(100)
  23.  
  24. @go
  25. def _fred(): fred(20)
  26.  
  27. @go
  28. def _fred1():
  29. "example of passing code as data"
  30. fred(22.99,pretty = lambda x: x)
  31.  
  32.  
  33.  
  34. class yourFirstClass:
  35. def __init__(self,x) :
  36. self.mine = x
  37. def x(self):
  38. return self.mine
  39. def setX(self,new):
  40. self.mine=new
  41.  
  42. @go
  43. def _class1():
  44. "example of set, get, init of a class"
  45. y = yourFirstClass("morgantown")
  46. y.setX("fairmont")
  47. y.mine="clarksburg"
  48. print y.x()
  49.  
  50. @go
  51. def _i1():
  52. "counting"
  53. for i in xrange(5,16,3):
  54. print i
  55.  
  56. @go
  57. def _i2():
  58. "iterating"
  59. for x in ["m","f","c"]:
  60. print x
  61.  
  62. y ={"a":10,"b":20,"c":30}
  63.  
  64. @go
  65. def _dict1():
  66. "accessing a dictionary"
  67. print y["c"]
  68.  
  69. @go
  70. def _sorteddic():
  71. "example of walking a dictinary in key sort order"
  72. for key in sorted(y.keys()):
  73. print ":key",key,":val:",y[key]
  74.  
  75. @go
  76. def _dict2():
  77. "accessing keys and values"
  78. for k,v in y.iteritems():
  79. print ":key new",k,":val:",v
  80.  
  81.  
  82. def odd(x) : return x % 2 == 1
  83.  
  84. @go
  85. def _odd(): print odd(2), odd(21)
  86.  
  87. def largeOdd(x) : return odd(x) and x > 10
  88.  
  89. @go
  90. def _largeOdd(): return largeOdd(11)
  91.  
  92. @go
  93. def lcomp():
  94. "example of list comprehension"
  95. print [x/3.0 for x in xrange(60,110,3) if largeOdd(x)]
  96.  
  97. def myOdds() :
  98. for x in xrange(60,110,3):
  99. if odd(x):
  100. yield(x)
  101.  
  102. @go
  103. def _iterate():
  104. "example of defining your own iterator"
  105. for y in myOdds():
  106. print y
  107. if y> 90:
  108. break