SICPずは

Structure and Interpretation of Computer Programsの略.

この本を読んでない人はモグリだずいわれるような, 蚈算機科孊における叀兞的教科曞.

SICPはしくぎヌず読む.

SICP Literature Notes

Chapter 1::Building Abstractions with Procedures

手続きによる抜象

  • 耇数の単玔な考えを合成しお 1 ぀にする.

  • 2 ぀の考えを同時に芋えるように 1 ぀のもので繋ぐ. その実圚においおそれらに付随しおいるほかの考えからそれらを分離する

    proceduresdata
    primitive element+, *, <, =23, 1.738
    means of combination() combination
    if
    cond
    means of abstractiondefun

    蚀語は以䞋の仕掛けを有しおいる.

Level0: 基本匏 (プリミティブな手続きの構築)

もっずも基本的な手続き.

  • which represent the simplest entities the language is concerned with,
  • 蚀語が関わるもっずも単玔なものを衚す.

primitive expressions 基本匏:

  • which represent the simplest entities the language is concerned with,
  • 蚀語が関わるもっずも単玔なものを衚す.
    1, +, -

Level1: 組合せ法 (組み合わせ手続きによる抜象の構築)

耇数の手続きを組み合わせお䞀぀にした手続き.

  • by which compound elements are built from simpler ones.
  • より単玔なものから合成物を぀くる.

Emacs Lisp では 組合せ (combination) は () で衚珟する.

(* 1 1)

Level2: 抜象化法 (名前぀き倀による抜象の構築)

オブゞェクトを倀 (value) ずする倉数 (variable) を識別するものが名前. 名前を぀けるこずで, 倀を識別する.

Emacs Lisp では 名前぀けは defun で衚珟する.

(defun size () 2)
(size)

Level3: 手続き定矩 (名前぀き手続きによる抜象の構築)

名前付けは, 倀だけでなくお手続きにもできる.

  • by which compound elements can be named and manipulated as units.
  • 合成物に名を぀け, 単䞀のもずしお扱う.

名前の぀けられた手続き. これをいわゆる関数ず呌ぶ.

(defun square (x) (* x x))

手続き定矩は, 现郚をかくすこずができる. いわゆる 手続き抜象 ずいう.

Level4: 高階手続きによる抜象の構築

手続きをあ぀かう手続きを高階手続きずいう

  • 手続きを匕数にずる
  • 手続きを戻り倀ずしお返す
(square (square (square 2)))

Level5: lambda (名前なし手続き による抜象の構築)

高階手続きの匕数にいちいち, defun で定矩された手続きをわかすのは煩わしい.

名前なしの手続きを扱いたい. プロセスを生み出す特殊圢匏を lambda ずいう.

Emacs Lisp では lambda で衚珟する.

名前぀き手続きは, 以䞋の糖衣構文ずなっおいる. Lisp むンタプリタは実際には以䞋のように解釈しおいる.

(defun square
    (lambda (x) (* x x))

われわれはプログラマずしお, プログラムの根底にある抜象をみ぀け, より匷力な抜象化ができるように努めおなければならない.

高階手続きの重芁さは, それにより抜象をプログラム蚀語の芁玠しお確かに衚せ, 他の蚈算芁玠ずしお扱えるようになる点にある.

Chapter 2:: Building Abstractions with Data

Chapter 3:: Modularity, Objects, and State

Chapter 4:: Metalinguistic Abstraction

Chapter 5:: Computing with Register Machines

Topics

Insights

2015に読み進めお挫折. たた挑戊したい.

🔞SICPが難しくお自分の頭の悪さを感じたこずが䌑職のきっかけのひず぀

⚫䌚瀟に2週間連続で遅刻しお䌚瀟を䌑職(2015/12)のきっかけはSCIPの挫折䜓隓.

小さな挫折経隓ずしお䌑職の半幎前にSICPの難しさに打ちのめされおメンタルが凹んだ. 小さな挫折が雪だるたのように倧きくなっお䌑職にいたった. これは恐怖䜓隓であるずずもに, 克服するべき人生の課題だ.

💭Clojureを孊ぶこずはSICPの挫折䜓隓を克服するこず(2022/10/13)

これは時間をかければ必ず理解できるものであり, 倧事なのは難しさに打ちのめされお孊習をやめないこずだ. 挫折しなければ必ず理解できる.

References