[xyzzy:03984] Re: 行番号つきラインコピー (と質問)
- Subject: [xyzzy:03984] Re: 行番号つきラインコピー (と質問)
- From: YAMAMOTO Taizo <ymtz@xxxxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
- X-yzzy-version: 0.1.2.120
やまもとです。
>| いや〜、lispは亀井さんとか逸見さんのソースだけ見ながら
>| 勉強した人間なので、ちょっと根本的に、、、
>
>マクロは 2 回評価される関数みたいなものと思っていれば
>間違いないでしょう(ただし 1 回目の評価のときには引数の
>評価はされない)。
>(中略)
>複雑なマクロ定義だと、list やら append やら cons やら
>quote やらをごちゃごちゃ書くのがめんどくせ〜、というわ
>けでテンプレートを使うことができます。詳しい説明は面倒
>なのでしませんが(^^; 上の例をテンプレートを使って書く
>とこのようになります。
>
> (defmacro M (a b c)
> `(progn
> (m-setup)
> ,a ,b ,c
> (m-cleanup)))
>
> (defmacro M2 (&rest args)
> `(progn
> (m-setup)
> ,@args
> (m-cleanup)))
丁寧な説明、本当にありがとうございます。
#分かりやすい説明ですので、へなちょこリファレンスに取り込ん
#で頂けると嬉しいですが、、、
なるほど、evalmacs.lに書かれているのはそういうことなのですね。
テンプレートを使えば、どうやってリストを作るのかをあまり気に
する必要が無いと。この説明読むまでは '`, で混乱しまくっ
てました。
これで、自分用の制御構造を書けるようになって便利かも、、、
----
YAMAMOTO Taizo / 山本 泰三
mail : ymtz@xxxxxxxxxxxxxxx
yamamoto@xxxxxxxxx
www : http://www1.odn.ne.jp/ymtz/