| モデル | 概要 |
|---|---|
| 機械モデル | チューリングマシーン等の仮想的なコンピュータシステムにおける 状態遷移をモデル化したもの。 |
| 関数モデル | コンピュータによる計算を簡単な関数の組み合わせとして捉える。 λ式とその簡約により定義できる。 |
| 論理モデル | 論理式を定義し、その真偽や証明を求める。 |
| 関数モデルや論理モデルで与えられた表現を変形し、 意味の自明な表現を導く。 | |
| 代数モデル | 処理対象となるデータを集合として捉え、 集合に定義された演算により、 新たな集合の生成や要素の特定を行う。 |
パラダイム |
基本式 | 組み合わせ法 | 抽象化法 |
|---|---|---|---|
| 関数型 | 関数 | 関数の入れ子 | 関数の組み合わせからなる新たな関数の定義 |
| 論理型 | 述語(事実および規則) | 規則の組み合わせ | 規則の組み合わせにより自動的に新たな規則が生成される |
| 手続き型 | 手続き | 手続きの列 | 手続きの列に名前をつけ、新たな手続きとして定義 |
| オブジェクト | オブジェクト間のメッセージ交換 | 既存オブジェクトのサブクラスの生成もしくは新規クラスの定義 | |
| エージェント | エージェント間のメッセージ交換 | 既存エージェントのサブクラスの生成もしくは新規クラスの定義 | |
| 命令 | 命令の列 | 新規命令の定義 |
![]() |
![]() |
(+ 2 3)
;ここで[C-j]を押すと
|
(+ 2 3)
|
|
File to save in: ~/
|
128を評価すると128 を得、
また、文字列"Hello"を評価すれば、"Hello "を得る。
128
;と入力し[C-j]を押すと
|
+や*、sqrtなどの
関数による手続きを入力することもできる。
関数による手続きを評価すると、図6のように、その手続きを実行した結果を得る。
(+ 2 3 4)
;ここで[C-j]を押すと
|
(func x y)のようになることに注意する。
(* (+ 1 2) (+ 3 4))
;ここで[C-j]を押すと
|
(* (+ 1 2)
;ここでは[C-j]を押さず改行し
|
(if
<条件式>
<式1>
<式2>
)
|
(if (> 1 2) "large" "small")
;ここで[C-j]を押すと
|
(cond
|
(<条件式1> <式1> )
|
|
(<条件式2> <式2> )
|
||
| ... | ||
(<条件式n> <式n> )
|
)
|
(cond ((> 0 0) "plus")
|
(defun
<関数名> <内部変数のリスト>
<定義式>
)
|
(defun square (x)
|
(square 3)
;ここで[C-j]を押すと
|
(defun magnitude (x y)
|
(defun abs (x)
|
| x ! = x · (x - 1) · (x - 2) · · · 1 |
| x ! = | { | x · (x - 1) ! | (x > 0 の場合) |
| 1 | (x = 0 の場合) |
(defun fact (x)
|
| sum(n ) = |
|
= | { |
|
= n + sum(n -1) | (n > 1) | 1 | (n = 1) | |||||||||||||