match macro difference
Gauche
OK
(use srfi-1) (use util.match) (match '(0 (1 2) (3 4 5)) [(a (b c) (d e f)) (list a b c d e f)]) (match '(0 (1 2) (3 4 5)) [`(,a (,b ,c) (,d ,e ,f)) (list a b c d e f)])
racket
Err
#lang scheme (require racket/match) (match '(0 (1 2) (3 4 5)) [(a (b c) (d e f)) (list a b c d e f)]) ;=> match: syntax error in pattern in: (a (b c) (d e f))
OK
#lang scheme (require racket/match) (match '(0 (1 2) (3 4 5)) [(list a (list b c) (list d e f)) (list a b c d e f)]) (match '(0 (1 2) (3 4 5)) [`(,a (,b ,c) (,d ,e ,f)) (list a b c d e f)])
Err
(require (planet jim/sxml-match:1:1/sxml-match)) (sxml-match '(0 (1 2) (3 4 5)) [(0 (,b c) (,d ,e ,f)) (list 0 b c d e f)]) ;;=> sxml-match: bad pattern syntax (not an element pattern) in: (0 ((unquote b) c) ((unquote d) (unquote e) (unquote f)))