summaryrefslogtreecommitdiff
path: root/scheme/test-struct.ss
blob: 439103f7edb04cf1ecc633b7ee4d6ab5fd8df081 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(import (rnrs) (struct) (sweet-macros) (ikarus))

;(display (syntax-expand (struct (a 1) (b 2))))

;(pretty-print (syntax-expand (struct base-struct (a 1) (b 2))))

(define s1 (struct (a 1) (b 2)))
(define s2 (struct s1 (c 3)))
(define s3 (struct s2 (a 4)))

(define (struct->alist s)
  (map (lambda (k) (list k (s k))) (s '->keys)))

(display (struct->alist s3))

(for-each (lambda (k) (display (s3 k))) (s3 '->keys))