R6RS:翻訳:R6RS:11.4.7 Sequencing
11.4.7 直列化
[syntax] (begin <form> ...)
[syntax] (begin <expression> <expression> ...)
<begin> キーワードには文脈に応じてふたつの役割がある。
- <body> (R6RS:翻訳:R6RS:11.3 Bodies 参照)、 <library body>(R6RS:翻訳:R6RS:7.1 Library form 参照)、 <top-level body>(R6RS:翻訳:R6RS:8 Top-level programs 参照)や、本体部分に現れる begin フォームに直接入れ子になったフォームとして現れることがある。この場合、 begin フォームは最初の頭書で示した形式をしていなければならない。この begin の用法は継ぎ合わせフォームとして働く。すなわち、 <body> 内部のフォームが外側を囲む本体部分に継ぎ合わされ、実際には begin で囲われていないようになるのである。
<body> や <library body> に現れる begin フォームは、それが最初の <expression> の後に現れる場合には空であってはならない。
- 通常の式として現れることもあり、その場合はふたつめの頭書のような形式をしていなければならない。この場合、 <expression> は左から右に順に評価され、最後の <expression> の値が返る。この式型は代入や入出力のような副作用を直列化するのに使われる。
(define x 0)
(begin (set! x 5)
(+ x 1)) ⇒ 6
(begin (display "4 plus 1 equals ")
(display (+ 4 1))) ⇒ unspecified
and prints 4 plus 1 equals 5
Last modified : 2008/04/02 03:25:15 UTC