| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[R5RS] formを順に評価し、最後の値を返します。
Beginはletのような「ブロック」を作成するわけではありません。
すなわち、一般的にはform …の先頭に「内部のdefine (internal define)」を
置くことはできません。意味的には、beginはまるでform …が
beginを囲むコンテクスト中に展開されているかのように振舞います。
例えば、トップレベルに次のような式があった場合、それは2つのトップレベルのdefineと
同等です。
(begin (define x 1) (define y 2)) |
よりトリッキーな例:
(let ()
(begin
(define x 2)
(begin
(define y 3)
))
(+ x y))
≡
(let ()
(define x 2)
(define y 3)
(+ x y))
|
exp0, exp1, … を評価し、exp0の結果を返します。
この名前はMzSchemeから取られました。これはCommonLispで
prog1と呼ばれているものです。
beginと違って、これは「ブロック」を構成します。
begin0フォームは次のように展開されるからです。
(receive tmp exp0 exp1 … (apply values tmp)) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on May 28, 2012 using texi2html 1.82.