ブロック式
ブロック文は、手順を式として渡すための表現です。ブロック文を使うことで、匿名手順を定義できます。
書式
『【プログラム】』
【プログラム】 文を書き連ねたプログラム
例
文は、『「こんにちは」を表示する』 文を実行する
ブロック式の有効範囲
ブロック式の有効範囲は、こちらで説明しています。
匿名手順とクロージャ
プロデルのブロック式は、実行時に評価されると「匿名手順」種類のオブジェクトとなります。このオブジェクトの「実行する」手順が実行されたときでも、ブロック式が書かれた場所の有効範囲が適用されます。
例文
例えば、次のプログラムでは「閉包処理を実行した」時には「クロージャを生成する」手順にある「A」変数の有効範囲が適用されます。
つまり、本来は「クロージャを生成する」手順で宣言した「A」変数は、手順が終わると使えなくなりますが、ブロック式を書いて、匿名手順にすることで、手順が終わった後でも「A」変数を使えるようになります。
クロージャを生成して、閉包処理とする 5回、繰り返す 閉包処理を実行して報告する そして クロージャを、生成する手順 【A】=0 『A=A+1。Aを返す』を返す 終わり
このように、ブロック式を使うことによって、本来の変数の有効範囲を超えて変数を使える仕組みを一般にクロージャと呼びます。