Make let-kw-form more portable to other syntax-case schemes
* goof.scm (let-kw-form): don't use guile-specific with-ellipsis.
This commit is contained in:
parent
050f88d678
commit
f5a3629b56
1 changed files with 3 additions and 4 deletions
7
goof.scm
7
goof.scm
|
@ -206,18 +206,17 @@
|
||||||
((_ macro-name final-fun (user-finals ...) (loop-name (var step) ...) . body)
|
((_ macro-name final-fun (user-finals ...) (loop-name (var step) ...) . body)
|
||||||
(let-syntax ((macro-name
|
(let-syntax ((macro-name
|
||||||
(lambda (stx)
|
(lambda (stx)
|
||||||
(with-ellipsis :::
|
|
||||||
(let loop ((lst (cdr (syntax->list stx)))
|
(let loop ((lst (cdr (syntax->list stx)))
|
||||||
(params (list #'(var step) ...)))
|
(params (list #'(var step) ...)))
|
||||||
(if (null? lst)
|
(if (null? lst)
|
||||||
(with-syntax ((((v s) :::) params))
|
(with-syntax ((((v s) (... ...)) params))
|
||||||
#'(inner-recur loop-name final-fun
|
#'(inner-recur loop-name final-fun
|
||||||
(user-finals ...)
|
(user-finals ...)
|
||||||
((v s) :::)))
|
((v s) (... ...))))
|
||||||
(syntax-case (car lst) (=>)
|
(syntax-case (car lst) (=>)
|
||||||
((=> name val)
|
((=> name val)
|
||||||
(loop (cdr lst) (update-name params #'name #'val)))
|
(loop (cdr lst) (update-name params #'name #'val)))
|
||||||
(_ (error "Malformed looping clause in macro")))))))))
|
(_ (error "Malformed looping clause in macro"))))))))
|
||||||
. body))))
|
. body))))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue