26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
; create the case structure for rule expansion
(define-for-syntax (@rewrite-patterns patterns)
(define (nest-case pair)
(cons (list (car pair))
(cdr pair)))
(define (wrap pat)
(if (eq? (cdr pat) '()) ;then
pat
; else
(list (cons 'string-append pat))))
(let ([branches (map wrap patterns)])
(@one-of nest-case branches)))
|
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
; create the case structure for rule expansion
(define-for-syntax (@rewrite-patterns patterns)
(define (nest-case pair)
(cons (list (car pair))
(cdr pair)))
(define (wrap pat)
(if (null? (cdr pat)) ;then
pat
; else
(list (cons 'string-append pat))))
(let ([branches (map wrap patterns)])
(@one-of nest-case branches)))
|