ring wandering
Scheme の begin には面白い特徴があります。新しいスコープを作らないのです。例えば ↓ こんなコードでエラーが起こりません。(begin (define a 1))(display a)a はトップレベルで定義されたことになります。記事中のコードは begin と let のどちらを使っても問題ないと思いますが、同等と考えていると不意につまづくこともあるかもしれません。begin のこの性質はマクロを書くときに必要になることがあります。
ご指摘ありがとうございます!全然、等価じゃないみたいですね^^;
Scheme の begin には面白い特徴があります。
返信削除新しいスコープを作らないのです。
例えば ↓ こんなコードでエラーが起こりません。
(begin (define a 1))
(display a)
a はトップレベルで定義されたことになります。
記事中のコードは begin と let のどちらを使っても問題ないと思いますが、同等と考えていると不意につまづくこともあるかもしれません。
begin のこの性質はマクロを書くときに必要になることがあります。
ご指摘ありがとうございます!
返信削除全然、等価じゃないみたいですね^^;