私はこのマクロを持っています:
(define-syntax inspect
(syntax-rules ()
[(_ x) (printf "~a is: ~a\n" 'x x)]))
次のように機能します。
(let ([x 2]) (inspect x))
>> x is: 2
しかし、私がやりたいのは、私が持っているようにそれを拡張することです
(_ x ...)
提供されるさまざまな値をループし、それに応じて変数名と値を出力します。
すなわち
(let ([x 2] [y 3]) (inspect x y))
>> x is: 2
y is: 3
私はこの部分で少し立ち往生しています。
たとえば、次のようなものがあります。
(define-syntax (inspect stx)
(datum->syntax
stx
(for ([i (cdr (syntax->list stx))])
(printf "~a is: ~a" (syntax->datum i) i))))
最後の行で i の値を取得する方法がわかりません。
どんな助けでも大歓迎です。
ありがとう。