2017-03-10 10:55 GMT+01:00 Peter Bex <[email protected]>:
>
> Gauche and Racket accept this macro application, Scheme48 rejects it (but
> that's expected, because our syntax-rules is originally from Scheme48).
>
But Gauche fails like Chibi. They silently ignore the last ellipsis.
$ chibi-scheme
> (define-syntax define-facts
(syntax-rules ()
((_ (name a0 a1 ...) ((v00 v01 ...) (v10 v11 ...) ...))
'(define (name a0 a1 ...)
(conde
((== a0 v00) (== a1 v01) ...)
((== a0 v10) (== a1 v11) ...)
...)))))
> (define-facts (fathero f c)
(("Abraham" "Ismael")
("Abraham" "Isaac")
("Isaac" "Jacob")
("Jacob" "Benjamin")))
(define (fathero f c) (conde ((== f "Abraham") (== c "Ismael")) ((== f
"Abraham") (== c "Isaac"))))
MIT and Ikarus succeed like Guile.
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users