bairui

newLisp FOOP example

Sep 17th, 2011
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env newlisp
  2.  
  3. (new Class 'Counter)
  4.  
  5. ; override default constructor
  6. (define (Counter:Counter (start-value 0) (increment 1))
  7.   (list Counter start-value increment))
  8.  
  9. (define (Counter:next (times 1)) (dotimes (x times) (inc (self 1) (self 2))))
  10.  
  11. (define (Counter:to_s) (format "step:%d, value:%d" (self 2) (self 1)))
  12.  
  13. (context MAIN)
  14.  
  15. ; uses default values (value = 0, increment = 1)
  16. (set 'c (Counter))
  17. (println (:to_s c))
  18. (:next c)
  19. (println (:to_s c))
  20. (:next c 2)
  21. (println (:to_s c))
  22.  
  23. ; explicit values
  24. (set 'c (Counter 2 3))
  25. (println (:to_s c))
  26. (:next c)
  27. (println (:to_s c))
  28. (:next c 2)
  29. (println (:to_s c))
  30.  
  31. (exit)
Advertisement
Add Comment
Please, Sign In to add comment