[scheme] miniKanren matche macro with "..." pattarn
miniKanren matche マクロで matchマクロと同様の ... を使ったパターンマッチをできるようにした
https://github.com/niitsuma/Racket-miniKanren/blob/recursive/matchee.scm
諸事情で ... ではなく ___ を代用している
使用法
matchマクロと同じ。具体例は、こんな感じ
(run* (q) (matchee '((1 (2 3)) (10 (2 30)) (100 (2 300))) [ ( (,a (2 ,b)) ___ ) (== q `(,a ,b)) ] )) > '(((1 10 100) (3 30 300)))
他の実行例を
https://github.com/niitsuma/Racket-miniKanren/blob/recursive/matchee-test.scm
にも書いた
オリジナルのmatcheマクロをsrfi-53で前処理してから呼び出すような形になっているので
miniKanrenだけでなく(srfi-53が動くなら)cKanrenなどでも動くはず
https://groups.google.com/forum/#!topic/comp.lang.scheme/wiEUNLRyvus
この問題が解決できなかったので
... ではなく ___ を代用している