Hello,
I tried to port SRFI-204 to several Scheme implementation, I failed.
At this time a reduced test suite pass for the following implementations:
- chez
- chibi
- gambit
- gauche
- loko
- racket
- sagittarius
And fails for the following implementations:
- chicken
- cyclone
- gerbil
- guile
- mit
You can find the test suite I use at:
git clone --branch=match https://github.com/scheme-live/live/
cd live
cat live/match/unstable/checks/check-*.scm
It seems to me a standard pattern matcher should be possible to implement on top R7RS-small, alas that exclude some rules such as:
> ($ record-name pat_1 ... pat_n) a record
>
> (= field pat) a ``field'' of an object
>
> (set! identifier) anything, and binds setter
>
> (get! identifier) anything, and binds getter
>
The box rule does not seem necessary; a box has no portable `write` representation (so far):
> #&qp box
I never used a guard.
ref: https://github.com/scheme-live/live/pull/67
ref: https://srfi.schemers.org/srfi-200/
ref: https://srfi.schemers.org/srfi-204/