ブロック式

ブロック文は、手順を式として渡すための表現です。
ブロック文を使うことで、匿名手順を定義できます。

文は、「こんにちは」を表示する文を実行する

匿名手順とクロージャ

プロデルのブロック式は、実行時に評価されると「匿名手順」種類のオブジェクトとなります。このオブジェクトの「実行する」手順が実行されたときは、ブロック式が評価された時の有効範囲が適用されます。

例文

例えば、次のプログラムでは、「閉包処理を実行した」時には、「クロージャを生成する」手順にある「A」変数の有効範囲が適用されます。

つまり、本来は、「クロージャを生成する」手順で宣言した「A」変数は、手順が終わると使えなくなりますが、ブロック式を書いて、匿名手順にすることで、手順が終わった後でも「A」変数を使えるようになります。

閉包処理は、クロージャを生成したもの

5回、繰り返す
  閉包処理を実行して報告する
繰り返し終わり

クロージャを、生成する手順
  【A】=0
  『A=A+1。Aを返す』を返す
終わり

このように、ブロック式を使うことによって、本来の変数の有効範囲を超えて変数を使える仕組みを一般にクロージャと呼びます。

ページ先頭へ