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-23

Practical Common Lisp (13)

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

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

Function Calls

  • 関数呼び出しのフォームは簡単で、関数名以降の残りのリストを評価して得られた値を関数に渡すだけ。
  • ということは、関数名以降も正規のLispフォームである必要があるということ。
  • 基本形 (関数名 引数*)
  • (+ 1 2)がどう評価させるかを順に辿ると
    1. 1が評価される。
    2. 2が評価される。
    3. これらを、+に渡して処理し、結果として3が返る。
  • もう少し複雑な、(* (+ 1 2) (- 3 4))の場合
    1. (+ 1 2)は、上記より3であることが分かり、(- 3 4)は、-1で、これらが*に渡り、結果として2になる。
  • というように、他の言語では、文法上、個別に特別な形をしているような処理も、Lispでは上記のようになんでも関数処理の流れとして扱い、一貫したものになっていたりする。