マクロ展開時に計算ができる衛生的マクロとしてはやはり implicit renaming macro が一番いいと思ってる。やっぱり Lisp のマクロを書く側の気持ちとしては S 式の変換で済ませたいところがあり、syntax-case はなんかよく分からんものを勉強しないといけなくてつらいと思っている。
Conversation
Notices
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 07-Jun-2024 00:31:38 JST きゅーけー -
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 07-Jun-2024 00:32:57 JST きゅーけー explicit renaming macro の裏みたいな感じだと思うのだけど、大抵の場合全部 rename したいとなると思うので implicit renaming macro の方がうれしいイメージ。
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 07-Jun-2024 00:42:47 JST きゅーけー ir-macro-transformer から渡された compare で比較しないといけない理由完全に理解した。定義元の環境の識別子じゃないとダメだよってしたいからか。
Common Lisp みたいに関数と変数の名前空間が分かれていることと package によって分かれているからだいたいOKみたいな感じではないので、Scheme で正しくマクロを書くときはこのあたりのことをよく考えないといけない。
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 07-Jun-2024 00:45:21 JST きゅーけー ながらく Racket と Guile をつかってきたので syntax-case 系列のものに満足していた気がしたけど、S 式の変換だと思いたいのにそうなっていないという不満があったことを今思い出した。
-