2009年1月3日土曜日

【実践CL】7 マクロ:標準的な制御構文の構築


  • 前説

    • 要旨:プログラミングの大部分は言語の拡張である。CLのマクロは、関数、オブジェクトに並ぶ第三の拡張方法である。

  • 7.1 WHENとUNLESS

    • 要旨:マクロ機構が言語に組込まれているので、DSLを手軽に書ける。

  • 7.2 COND

    • 要旨:CONDの紹介。

  • 7.3 ANDとORとNOT

    • 要旨:ANDとORとNOTの紹介。(NOTは関数)

  • 7.4 繰り返し

    • 要旨:CLにおける繰り返し機構は階層をなしている。下から言うと、tagbodyとgo -> do -> dolist,dotimes,.. という系列と、loopがある。loopは英語のように繰り返しを書く機構。

  • 7.5 DOLISTとDOTIMES

    • 要旨:DOLISTとDOTIMESの紹介。

  • 7.6 DO

    • 要旨:DOの紹介。

  • 7.7 強力なLOOP

    • 感想:「LOOPを悪く言う人たちは、そのシンタックスがちっともLispっぽくない(つまり、括弧が足りない)と主張している」これは少なくともPGとNorvigについてはあてはまらない。彼らはどちらかというとLOOP否定派だが、その理由は、「拡張LOOPはANSI仕様において、またそれ以外のところにおいても、十分な構文定義が存在しない。そして実際、解釈が不定な表現も書けてしまう」ということがひとつ。あとは、「拡張loop構文は複数節の組み合わせという構造をもっているが、それをなす各節を拡張LOOP構文以外のところで再利用できないつくりはよろしくない」ということだったような。
    • 感想:私個人としては、プロトタイピングとかに有効につかって、固くするときにdoとかに書き換えればいいんじゃない、と考えている。
    • 要旨:賛否は別にして、こんなものもできちゃうのがマクロのパワーだ。


こつこつ。

0 件のコメント: