enum.scm 590 B

123456789101112131415161718192021222324252627282930
  1. ;; (defclass (Currency [string? value]))
  2. ;; (def GBP (Currency "GBP"))
  3. ;; (def USD (Currency "USD"))
  4. ;; (def EUR (Currency "EUR"))
  5. ;; (defclass (Currency))
  6. ;; (def GBP (Currency ))
  7. ;; (def USD (Currency ))
  8. ;; (def EUR (Currency ))
  9. ;; #define GBP 1
  10. ;; #define USD 2
  11. ;; #define EUR 3
  12. ;; struct MonetaryAmount {
  13. ;; float amount;
  14. ;; int currency;
  15. ;; }
  16. (defenum Currency GBP USD EUR)
  17. (defclass (MonetaryAmount [real? amount]
  18. [Currency? currency]))
  19. (def i-owe-you (MonetaryAmount 10.4 GBP))