;; -*- Mode: Irken -*- (include "lib/core.scm") (include "lib/pair.scm") (include "lib/alist.scm") ;; ok, here's how you would have to build a table without a macro facility: (define numbers (literal (alist:entry 0 'zero (alist:entry 1 'one (alist:entry 2 'two (alist:entry 3 'three (alist:entry 4 'four (alist:entry 5 'five (alist:entry 6 'six (alist:entry 7 'seven (alist:entry 8 'eight (alist:entry 9 'nine (alist:nil))))))))))))) (printn (alist/lookup numbers 6)) ;; using the macro (define numbers2 (literal (alist/make (0 'zero) (1 'one) (2 'two) (3 'three) (4 'four) (5 'five) (6 'six) (7 'seven) (8 'eight) (9 'nine) ))) (printn (alist/lookup numbers2 7)) (printn (alist/lookup numbers2 100)) (alist/push numbers2 100 'one-hundred) (printn numbers2) (define thingies (literal (alist/make ('a "a") ('b "b") ('c "c") ))) (printn thingies)