Hatena::Groupsicp

a666666の日記 このページをアンテナに追加 RSSフィード

2008-09-24

1.1.2 名前と環境

| 01:07 | 1.1.2 名前と環境 - a666666の日記 を含むブックマーク はてなブックマーク - 1.1.2 名前と環境 - a666666の日記 1.1.2 名前と環境 - a666666の日記 のブックマークコメント

値 value

変数 variable

define

値に名前をつける

gosh> (define size 2)
size
gosh> (* 5 size)
10
gosh> (define pi 3.14159)
pi
gosh> (define radius 10)
radius
gosh> (* pi (* radius radius))
314.159
gosh> (define circumference (* 2 pi radius))
circumference
gosh> circumference
62.8318

複雑なプログラムは比較的簡単な手続きを一歩一歩組み上げて出来ている

  • 環境 environment
    • 解釈系が名前と値の対応付けを見失わないために保持している記録

1.1.1 式

| 00:58 | 1.1.1 式 - a666666の日記 を含むブックマーク はてなブックマーク - 1.1.1 式 - a666666の日記 1.1.1 式 - a666666の日記 のブックマークコメント

gosh> 486
486
gosh> (+ 137 349)
486
gosh> (- 1000 334)
666
gosh> (* 5 99)
495
gosh> (/ 10 5)
2
gosh> (+ 2.7 10)
12.7

前置記法 prefix notation

gosh> (+ 21 35 12 7)
75
gosh> (* 25 4 12)
1200

入れ子 nested

清書系 pretty print

字下げ indent

gosh> (+ (* 3 5) (- 10 6))
19
gosh> (+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))
57
gosh> (+ (* 3
            (+ (* 2 4)
               (+ 3 5)))
         (+ (- 10 7)
            6))
57

読み込み - 評価 - 印字ループ read-eval-print loop

1.1 プログラムの要素

| 00:50 | 1.1 プログラムの要素 - a666666の日記 を含むブックマーク はてなブックマーク - 1.1 プログラムの要素 - a666666の日記 1.1 プログラムの要素 - a666666の日記 のブックマークコメント

基本式

言語が関わるもっとも単純なもの

組み合わせ法

単純なものから合成物を作る

抽象化

合成物に名前をつけて単一のものとして扱う


プログラムするときの二つの要素

  • 手続き
    • データの処理法の記述
  • データ
    • 処理したい「もの」のこと