| I spotted this today arc> (with (a 1 b 2) `(foo (,a . ,b)))
(foo (1 . 2))
arc> (let foo 'bar `(,foo (a . b)))
Error: "map: expects type <proper list> as 2nd argument, given: (a . b); other arguments were: #<procedure:...w/src/arc/ac.scm:247:14>"
It might look unimportant, but it's impossible to use a macro to generate a macro that takes a rest param: arc> (mac foo-mac (bar)
`(mac ,bar (baz . args) (prn ',bar " and " args)))
Error: "map: expects type <proper list> as 2nd argument, given: (baz . args); other arguments were: #<procedure:...w/src/arc/ac.scm:247:14>"
If this is worth fixing, I guess it's in ac-qq1 in ac.scm: (define (ac-qq1 level x env)
(cond
; ...
; lots of conditions
; ...
((pair? x)
(map (lambda (x) (ac-qq1 level x env)) x)) ; here's 'map
(#t x)))
Except if the fault is here, I don't understand why the first example above works ( `(foo (,a . ,b)) ) |