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 の全容。