std.verm 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. VERM
  2. !?FU42;
  3. ; example 2 --- simple arithmetics
  4. ![defun add [x y] [+ x y]]
  5. ; example 1 --- Hello World
  6. ![setq-erm z 1 ^Hello world!^]
  7. ; example 2 --- simple arithmetics
  8. ![setq-erm z 2 [add 2 3]]
  9. ![progn
  10. [setq i 30]
  11. [setq doCounter 0]
  12. [setq doMax 4]
  13. [do [< doCounter doMax]
  14. [progn
  15. [setq doCounter [+ doCounter 1]]
  16. [setq-erm z i ^Test^]
  17. [setq i [+ i 1]]
  18. ]
  19. ]
  20. ]
  21. ; example 3 --- semantic macros
  22. ![defmacro doNTimes [times body]
  23. `[progn
  24. [setq doCounter 0]
  25. [setq doMax ,times]
  26. [do [< doCounter doMax]
  27. [progn
  28. [setq doCounter [+ doCounter 1]]
  29. ,body
  30. ]
  31. ]
  32. ]
  33. ]
  34. ![progn
  35. [setq i 40]
  36. [doNTimes 4
  37. [progn
  38. [setq-erm z i ^Test^]
  39. [setq i [+ i 1]]
  40. ]
  41. ]
  42. ]
  43. ; example 4 --- conditional expression
  44. ![if [> 2 1] [setq-erm z 3 ^2>1^] [setq-erm z 3 ^2<=1^]]
  45. ; example 5 --- lambda expressions
  46. ![
  47. [lambda [x y]
  48. [if [> x y]
  49. [setq-erm z 4 ^x>y^]
  50. [setq-erm z 4 ^x<=y^]
  51. ]
  52. ]
  53. 2 3
  54. ]
  55. ; example 6 --- resursion
  56. ![defun factorial [n]
  57. [if [= n 0] 1
  58. [* n [factorial [- n 1]]]
  59. ]
  60. ]
  61. ![setq-erm v 1 [factorial 0]]
  62. ![setq-erm v 2 [factorial 8]]
  63. !?PI;
  64. !!FU42:P0;