削除された内容 追加された内容
Kyube (トーク | 投稿記録)
163.43.120.116 (トーク) による版 178122 を取り消し rv test
タグ: 取り消し
Ef3 (トーク | 投稿記録)
→‎Schemeプログラムの構造、意味と評価の過程: <math>と<syntaxhighlight>でマークアップ
45 行
{| class="wikitable"
|+ 数学とSchemeの対応する主な表現
!scope="col"| 意味
! 意味 !! 数学の表記 !! 対応するSchemeの表記
!scope="col"| 数学の表記
! 意味 !! 数学の表記 !!scope="col"| 対応するSchemeの表記
|-
!scope="row"| 関数の適用
| <math>f(x, y)</math> || <syntaxhighlight lang="scheme" inline>(f x y)</syntaxhighlight>
|-
!scope="row"| 変数の値の更新
| なし || <syntaxhighlight lang="scheme" inline>(set! x y)</syntaxhighlight>
|-
!scope="row"| 等値性の検査
| <math>x = y </math> || <syntaxhighlight lang="scheme" inline>(= x y)</syntaxhighlight>
|-
!scope="row"| 関数の定義
| <math>f(x, y) = x + y</math> || <syntaxhighlight lang="scheme" inline>(define (f x y) (+ x y))</syntaxhighlight>
|-
!scope="row"| 乗算
| <math>a \times b</math> || <syntaxhighlight lang="scheme" inline>(* a b)</syntaxhighlight>
| a × b || (* a b)
|}
 
Schemeでは一貫して括弧の入れ子構造になっているのがおわかりになると思います。これがまさにSchemeの言語仕様がシンプルであるという所以です。Schemeではプログラムの実行を進めていくことを「評価」と呼びますが、これも簡単に言えば数式を変形して簡単にしていくことに似ています。たとえば、数学では次のように式を変形し、値を求めていきます。
 
::<math>\begin{align}
<syntaxhighlight lang="scheme">
1 + ((4 - 2) + 1) &= 1 + (2 + 1) \\
&= 1 + (23 + 1)\\
&= 1 + 34
\end{align}</math>
= 4
 
</syntaxhighlight>
これ以上簡単にしようがない「4」が出てきた時点で変形は終了です。これで答えが求まりました。このような変形をSchemeで表せば次のようになります。