L.i.S.P 写経(その5)、5章つづき

頭に入れおきたいものが最初の方に出てきます。

手始めに、前章の evaluate 、そして新たに valuation が以下。

$\begin{array}{rl} \textit{evaluate} :& \mathbf{Program \times Environment \times Continuation \times Memory \to Value} \\ &\mbox{;; curring the first argument} \\ & ⇒ \mathbf{Program} \to (\mathbf{Environment \times Continuation \times Memory \to Value}) \\ \textit{valuation} :& \mathbf{Program \to Denotation} \\ \mathbf{Denotation} :& \mathbf{Environment \times Continuation \times Memory \to Value} \end{array}$

tenacious covnention と表現されているものを狭んで、

$\begin{array}{ll} \mathit{π} \; \mathbf{Program} &\quad \mathit{ρ} \; \mathbf{Environment}\\ \mathit{ν} \; \mathbf{Identifier} &\quad \mathit{α} \; \mathbf{Address} \\ \mathit{σ} \; \mathbf{Memory} &\quad \mathit{ε} \; \mathbf{Value} \\ \mathit{κ} \; \mathbf{Continuation} &\quad \mathit{φ} \; \mathbf{Function} \\ \end{array}$

But who knows why environments are indicated by ρ?

ρ に限らずだけれども、4章でそうすることにしたのです、という。


そして domain と呼ばれるものが以下。

$\begin{array}{rl} \mathbf{Environment} =& \mathbf{Identifier \to Address} \\ \mathbf{Memory} =& \mathbf{Address \to Value} \\ \mathbf{Value} =& \mathbf{Function + Boolean + Integer + Pair + …} \\ \mathbf{Continuation} =& \mathbf{Value \times Memory \to Value} \\ \mathbf{Function} =& \mathbf{Value* \times Continuation \times Memory \to Value} \\ \end{array}$

Scheme の全容。

index__1.svg