1. #!/usr/bin/python
  2.  
  3. print "\nlook at all the little lambies ..."
  4. print ', '.join(["baa-baa" for x in range(5)])
  5.  
  6. #Lambdas,
  7. print "\n---| version 1 |----------------"
  8. x=1
  9. def func1(y,lam = lambda x: int(x)):
  10. print("(float) x + y = ", x+y)
  11. print("(int) x + y = ",lam(x+y))
  12.  
  13. print func1(2.5)
  14.  
  15. print "\n#--| version 2 |----------------"
  16. print "# cleaner prints"
  17. x=1
  18. def func2(y,lam = lambda x: int(x)):
  19. print "(float) x + y = ", x+y
  20. print "(int) x + y = ",lam(x+y)
  21.  
  22. print func2(2.5)
  23.  
  24. print "\n#--| version 3 |----------------"
  25. print "# using returns"
  26.  
  27. x=1
  28. def func3(y, lam = lambda x : int(x)):
  29. return x + lam(y)
  30.  
  31. print func3(2.5), " # print with default"
  32. print func3(2.5,float), "# print with float"
  33. print func3(2.5,int), " # print with int (same as default)"
  34.  
  35. print "\n# --| version 4 |----------------------"
  36. print "# same functionality, pure functions (no globals)"
  37.  
  38. def mysum(x,y=0, filter = lambda x : int(x)):
  39. return filter(x+y)
  40.  
  41. print mysum(1,2.5), " # print with default"
  42. print mysum(1,2.5,float), "# print with float"
  43. print mysum(1,2.5,int), " # print with int (same as default)"
  44.  
  45. print "\n# --| version 5 |----------------------"
  46. print "# exercising mysum"
  47.  
  48. myFilter = lambda x : int(x) if x % 1 == 0.0 else float(x)
  49. print mysum(2, 5.3), " # floats coerced to an int"
  50. print mysum(2.5,2.5,myFilter), " # two floats that sum to a whole num"
  51. print mysum(1,2.5,myFilter), "# two things that sum to an un-wholy number"
  52.  
  53. print "\n# --| version 6 |----------------------"
  54. print "# as above, cleaner"
  55.  
  56. def maybeInt(x):
  57. return int(x) if x % 1 == 0.0 else float(x)
  58. print mysum(2, 5.3), " # floats coerced to an int"
  59. print mysum(2.5,2.5,maybeInt), " # two floats that sum to a whole num"
  60. print mysum(1,2.5,maybeInt), "# two things that sum to an un-wholy number"