Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2007-12-21

Practical Common Lisp (12)

| 01:14 | Practical Common Lisp (12) - わだばLisperになる を含むブックマーク はてなブックマーク - Practical Common Lisp (12) - わだばLisperになる

引き続きPractical Common Lisp 第4章4. Syntax and Semanticsを読んでメモしてみています。

S-expressions As Lisp Forms

  • リーダがテキストをS式に変換して初めて評価器の出番となる。
  • リーダが拾って来たS式、全部を全部評価できるというわけではない。
  • 評価器はLispのフォームを決定する役割があるが、これは非常にシンプルなルールに基いている。

4-どんなアトム(リスト以外のものと空リスト)も正しいLispフォームで、また、シンボルが第一番目の要素になっているリストも正しいフォームとして扱われる。

  • アトムは、シンボルと、それ以外の二種類に分類できる。
  • 評価されるLispフォームとしてのシンボルは現在保持している値となる。
    • "変"数という名前(Variable)にも注意しよう。値が"変"わらない"変"数もあり、"Constant Variable"と呼ばれる。(日本語だと、定数っていうし問題なしじゃなかろうか、どうなんだろう) 例としてはPIがCommon Lispには定数として定義されている。
  • それ以外のアトムは、それ自体が評価された値になるものになる。"Hello, World"を評価すると"Hello, World"
  • シンボルでもそういう例は存在する。Tと、NILを評価してもTとNIL、他には、キーワードシンボルが該当する。":"から開始されているシンボル。:FOOを評価すると、:FOO
  • リストの評価方法について
    • シンボルが第一番目の要素のリストは正しい表現として扱われるが、しかし、そういうリストには三種類あり、それぞれ随分と違った方法で評価される
    • 最初のシンボルの名前が、関数であるか、マクロであるか、スペシャルフォームであるか、の三種
    • 以降、関数呼び出しフォーム、マクロフォーム、スペシャルフォームと呼ぶことにする。

うーん、この節は自分の英語力で読むにはちょっと難しいなー。