[ < ] | [ > ] | [ << ] | [ 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 November, 22 2009 using texi2html 1.78.