『計算機プログラムの構造と解釈 第二版』1章 手続きによる抽象の構築 (1-4ページ)

1.1 プログラムの要素

強力な言語には3つの仕掛けがある

  • 基本式
    • 言語が関わる単純なものを表す
  • 組み合わせ法
    • より単純なものから合成物を作る
  • 抽象化法
    • 合成物に名をつけ、単一のものとして扱う

プログラムは2つの要素を扱う

  • データ
    • 処理対象
  • 手続き
    • 処理方法の記述

強力なプログラム言語は基本的データと基本的手続きが記述でき、手続きとデータを組み合わせたり抽象化したりする手段を持たなければならない。

1.1.1 式

基本書式


(演算子演算子)

例)

34 ;34
"hoge" ;"hoge"
(+ 4 5)  ;4+5
(- 10 45) ;10-45
(* 2 3) ;2*3
(/ 9 3) ;9/3

括弧で囲まれた手続きを「組み合わせ」(combinations)という。

組み合わせの値は演算子が指定する手続きを、被演算子の値である引数(arguments)に作用させて得る

演算子を被演算子の左に置く書き方を前置記法(prefix notation)という

前置記法の特徴
  • 任意個の引数をとれる
(+ 21 35 12 7) ;21+35+12+7
(+ (* 3 5) (- 10 6)) ;(3*5)+(10-6)
インデントの方法
(+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))

(+ (* 3
      (+ (* 2 4)
         (+ 3 5)))
   (+ (- 10 7)
      6))

1.1.2 名前と環境

下記のように名前をつかって変数を宣言できる

書式

(define 名前 値)

※値は式でも良い

(define minit 60)
(define hour (* minit 60))