CTMCP chapter2 終了

メモリライフサイクルと例外が面白かった。

  • メモリライフサイクル
  • 核言語
  • 例外

ProductName コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)
セイフ・ハリディ,ピーター・ヴァン・ロイ,Peter Van-Roy,Seif Haridi
翔泳社 / ¥ 8,610 ()
通常24時間以内に発送

宣言的モデルに二つの制限をおいて純粋関数型言語を定義できる

  • 変数を宣言するとき、ただちに値に束縛する
  • 手続きでなく関数だけを使う

CTMCP chapter2

風邪がひどくて、日本酒というかお酒を飲む気がおきないので、やたらと勉強する気力が高まっている。というわけで、誕生日祝いということで一年くらい前に購入したガウディ本を読み始めているが、これがやたらと面白い。僕にはさくさく読み進める感じじゃないのでゆっくりと読んでるけど。

ProductName コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)
セイフ・ハリディ,ピーター・ヴァン・ロイ,Peter Van-Roy,Seif Haridi
翔泳社 / ¥ 8,610 ()
通常24時間以内に発送

2章で得られる感覚はレビューにあるようにパズルのピースが次々とはまっていくような感覚ですな。

2.2.5 識別子を使う値生成

束縛された変数のリンクを辿って値を得ることを参照剥がし(dereference)という。これはプログラマには見えない。

perlではなじみの深い操作。pythonでは多分見えない(見る方法あるんだろうか)。普段は見えなくてもいいけど、こういうこと知っていると変数の生死とか色々分かっていいような気がする。

perlとはそういう言語なんだなぁと、春のYAPCのdankogaiさんのスライド(p.29)を思い浮かべた。

2.3.3 基本形

タプルはフィールドが1から始まる連続変数であるリスト。あーだから並びが一意に決まるんだと妙に納得。pythonのタプルって実のところよくわからなかったので。pythonの実装もそうなっているのだろうか?あとで調べてみよう。

そういえばMAWPで集合を扱う時にhashのキー値だけを扱う実装にしてたけど、hash,list,tupleの関係って実際どうなっているんだろうか?なんてことにも興味が湧いてきた。