SICP

SICP 孤読書会 - 2.4 抽象データの多重表現 (2.4.1 〜 2.4.3)

この節では、プログラムの内部実装が、異なる方法で表現されている可能性があるデータにどう対処するかを勉強する。 そこで必要となる 汎用手続き(generic procedure) 型タグ(type tag) データ主導(data directed) プログラミング についても述べる。 2.4.1 …

SICP 孤読書会 - 2.3 記号データ (2.3.1 〜 2.3.4)

この節では、データとして任意の記号に対して作業する能力を採用し、言語の表現力を拡大する。 2.3.1 クォート 記号を操作するために、データオブジェクトをクォートする(quote)能力が必要である。 リスト (a b) を作りたい場合、(list a b) で作ることはで…

SICP 孤読書会 - 2.2 階層データ構造と閉包性 (2.2.1 〜 2.2.4)

この節では、 合成データの閉包性(closure property)の重要さ について話す。 要素が"対"であるような"対"を作る能力は、リスト構造にとって重要。 この能力を cons の閉包性という。 閉包は階層的(hierarchical)構造を作ることができる。 2.2.1 並びの表現 …

SICP 孤読書会 - 2.1 データ抽象入門 (2.1.1 〜 2.1.4)

データ抽象(data abstraction)は、合成データオブジェクトの使い方を、それが基本的データによりどう作られたかの細部から隔離する技法。 データ抽象の基本的な考えは、プログラムを合成データオブジェクトを使うように構成し、「抽象データ」を操作するよう…

SICP 孤読書会 - 2 手続きによる抽象の構築

2章では、データオブジェクトを組合せ、合成データ(compound data)を作って抽象を構築することを学ぶ。 合成データが作れると、 言語の持つ基本的データオブジェクトより高いレベルの思考で、データを扱うことができる。 プログラムの部品化度を増やすこと…

SICP 孤読書会 - 1.3 高階手続きによる抽象 (1.3.1 〜 1.3.4)

強力なプログラミ言語は、よくあるパターンに名前をつけて抽象化し、その抽象を使って仕事をする能力を持つ。 抽象化の際、手続きの引数として、数値、文字列などの制限があると抽象化の能力は狭められる。 手続きを引数として取り、手続きを値として返す手…

SICP 孤読書会 - 1.2 手続きとその生成するプロセス (1.2.4 〜 1.2.6)

1.2.4 べき乗 引数として底 b と正の整数の指数 n をとり、 bn を計算する手続きは再帰的な手続き、反復的な手続きで記述することができる。 再帰的な手続きでは、Θ(n)ステップ、Θ(n)スペースを必要とする。 反復的な手続きでは、Θ(n)ステップ、Θ(1)スペース…

SICP 孤読書会 - 1.2 手続きとその生成するプロセス (1.2.1 〜 1.2.3)

この節では、 単純な手続きが生成するプロセス共通の「形」を見ていく。 プロセスが時間とスペースという計算資源を消費する速度を調べてみる。 1.2.1 線形再帰と反復 階乗の手続きから、再帰的プロセス、反復的プロセスについて考える。 n! = n * (n - 1) *…

SICP 孤読書会 - 1.1 プログラムの要素(1.1.6 〜 1.1.8)

1.1.6 条件式と述語 特殊形式 cond if and or の説明。 問題 1.1 〜 1.5 SICP/ch1 at master · snufkon/SICP · GitHub に解答。 問題1.4 は cond を使った方がよかったかも。 たびたび使う関数は、 SICP/lib at master · snufkon/SICP · GitHub に分けておき…

SICP 孤読書会 - 1.1 プログラムの要素 (1.1.1 〜 1.1.5)

プログラム言語は、単純な概念を統合して複雑な概念を構成する手段をもっている。 強力な言語には3つの仕掛けがある。 基本式: 言語が関わる最も単純なものを表す 組合せ法: 単純なものから合成物をつくる。 抽象化法: 合成名に名前をつけ、単一のものとし…

SICP 孤読書会 - 1 手続きによる抽象の構築

これから計算プロセス(computational process)について勉強していく。 計算プロセスは計算機の中に住む抽象的な存在。 プロセスは進行しながら、抽象的な存在、データ(data)を操作する。 プロセスの進行は、プログラムの指示に従う。 プロセスに実行させたい…

SICP 孤読書会 - 序文

しょっぱなから難しい。というより何が言いたいのかよく分からなかった。 日本語訳が酷いのか、自分のスペック不足なのか。 SICP Lite #1 - yukimiの成長記 SICP第2版の和田先生の訳は、ほんとにそんなにひどいのか: ホットコーナーの舞台裏 序文が一番難し…

SICP 孤読書会 - SICP を読む前の準備

SICP を読む際に準備したものを書いておきます。 SICP 紙と鉛筆 Gauche Emacs Github SICP 洋書もありますが、日本語で書かれた計算機プログラムの構造と解釈の第二版を使います。 計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサ…

SICP 孤読書会 - SICP を読み始めた理由

SICP という本を読み始めました。 計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 200…

SICP 孤読書会

普段、自転車日本一周の記事に目を通して下さっている方、ありがとうございます。 そして、ごめんなさい。 この記事は、日本一周には全く関係ないのでどうぞすっ飛ばしてください。 じゃあなんの記事だ? というと、ブログタイトルで自転車日本一周より前に…