in 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. make "pow [[a b] [
  2. if lt :b 1 [
  3. return 1
  4. ] [
  5. make "r pow :a div sub :b mod :b 2 2
  6. make "r mul :r :r
  7. if mod :b 2 [
  8. return mul :r :a
  9. ] [
  10. return :r
  11. ]
  12. print :r
  13. ]
  14. ]]
  15. print pow 2 18
  16. print readlist
  17. a b c 1 2 3
  18. make "fib_out [
  19. [x]
  20. [
  21. print :fib_out
  22. make "fib [
  23. [x]
  24. [if lt :x 2 [1] [add fib sub :x 1 fib sub :x 2]]
  25. ]
  26. fib :x
  27. ]
  28. ]
  29. print fib_out 3
  30. make "f [[x] [
  31. make "g [[y] [return add :x :y]]
  32. return g 42
  33. ]]
  34. print f 233
  35. make "f1 [[x] [
  36. make "g1 [[y] [return add :x :y]]
  37. return :g1
  38. ]]
  39. make "c1 f1 42
  40. make "c2 f1 24
  41. print c1 1
  42. print c2 2
  43. make "curry_two [[f x] [
  44. return [[y] [return f :x :y]]
  45. ]]
  46. make "f2 [[x y] [
  47. return add :x :y
  48. ]]
  49. make "f3 curry_two :f2 42
  50. print f3 233
  51. make "fun [
  52. [x]
  53. [
  54. make "b [
  55. [y]
  56. [return make "x add :x :y]
  57. ]
  58. return :b
  59. ]
  60. ]
  61. make "adder fun 5
  62. print adder 1
  63. print adder 2
  64. print adder 3
  65. print "abcd12
  66. make "a 16
  67. print :a
  68. make "b "a
  69. print thing :b
  70. make "c mul add :a 13 :a
  71. print if false [] [print sub :c "6]
  72. print div 12 5
  73. print mod 12 5
  74. make "d read
  75. 1234dd
  76. make "e print :d
  77. print :e
  78. make "prt [
  79. [a]
  80. [
  81. make "b [
  82. []
  83. [print :a]
  84. ]
  85. return :b
  86. ]
  87. ]
  88. make "c prt "hello
  89. c
  90. make "x 2
  91. print :x
  92. make "test [
  93. []
  94. [
  95. make "x 1
  96. export "x
  97. print :x
  98. ]
  99. ]
  100. test
  101. print :x