構文規則を定義するための構文を調べてきましたが、まだ行き詰まっています。
このシグネチャでルールを定義したい: (define-syntax-rule (for {val in lst} return res))。
基本的に、val と lst を指定して map を適用するだけです。しかし、私は構文に苦労しています。これは私がこれまでに思いついたことです.. .... (syntax-rules () ((for val in lst) (map (val lst)))) ...
入力は次のようになります。
( for {val in '(0 1 2 3 4)} return (- val 1) )
map がリストで呼び出されたかのように、(-1 0 1 2 3) を出力します。