モデル | 概要 |
---|---|
機械モデル | チューリングマシーン等の仮想的なコンピュータシステムにおける 状態遷移をモデル化したもの。 |
関数モデル | コンピュータによる計算を簡単な関数の組み合わせとして捉える。 λ式とその簡約により定義できる。 |
論理モデル | 論理式を定義し、その真偽や証明を求める。 |
関数モデルや論理モデルで与えられた表現を変形し、 意味の自明な表現を導く。 | |
代数モデル | 処理対象となるデータを集合として捉え、 集合に定義された演算により、 新たな集合の生成や要素の特定を行う。 |
パラダイム |
基本式 | 組み合わせ法 | 抽象化法 |
---|---|---|---|
関数型 | 関数 | 関数の入れ子 | 関数の組み合わせからなる新たな関数の定義 |
論理型 | 述語(事実および規則) | 規則の組み合わせ | 規則の組み合わせにより自動的に新たな規則が生成される |
手続き型 | 手続き | 手続きの列 | 手続きの列に名前をつけ、新たな手続きとして定義 |
オブジェクト | オブジェクト間のメッセージ交換 | 既存オブジェクトのサブクラスの生成もしくは新規クラスの定義 | |
エージェント | エージェント間のメッセージ交換 | 既存エージェントのサブクラスの生成もしくは新規クラスの定義 | |
命令 | 命令の列 | 新規命令の定義 |
![]() |
![]() |
(+ 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) | |||||||||||||