2009年6月28日日曜日

【フムフム本】4章 Gaucheの基礎練習


* 4章 Gaucheの基礎練習
** 4.1 インタラクティブな実行とREPL
- 「Schemeでは全てが式」なんだ。ここでの式は
expressionsのことかな。このあたりの考え方は、
Common Lispでは、forms (またはlisp forms)が対応
するかな。lisp forms -(evaluator)-> lisp
objects
- GaucheにはREPLがあるんだな。
** 4.1.1 リテラル
- 「そのリテラルの値そのものが式の値」というのは
初学者には難しいかも。リテラルの値って何?とい
う疑問が湧きそうな。後で説明するのかな。
- お、goshはrestartに対応してないのかも?

gosh> T\あ
*** ERROR: unbound variable: T
Stack Trace:
_______________________________________
gosh> *** ERROR: unbound variable: |\\あ|
Stack Trace:
_______________________________________

- goshのエラー出力の"***"がorg-modeとかぶる。。。
- 「外部表現」と「内部のデータ」というのがGauche
の用語。それぞれCommon Lispのstandard syntaxと
lisp objectsに対応するのかな。するとlisp forms
はどういう位置付けになるのかが興味深い。

** コラム 端末の文字コード設定
- 特になし。

** 4.1.2 手続き呼び出し
- Schemeでは手続き(procedure)という用語がある。
- 「Schemeには(他の言語における)演算子は無い。全
ては手続きであり同じ文法で呼び出します。」うむ
む、これはちょっと難しい。function、macro、
special operatorなどの総称が手続きということか
な。

** 4.2 Emacs
- gosh、起動がめちゃくちゃ速い。
- pareditは当面導入しないで、scheme-modeを使って
みる。

** コラム Gauche自身にコードを生成させる

- うむ?

gosh> (use srfi-1)
#<undef>
gosh> (map integer->char (iota 128))
...

というのはマクロの動機としては弱いのではないか。こ
れは普通の手続きでいいのでは。useまで含めると
Schemeではマクロじゃないと書けないのかな。

こつこつ。

0 件のコメント: