内部手続きと外部手続き ☆
内部関数定義,内部副プログラム,内部絵定義,handler区を内部手続き定義という。
また,外部関数定義,外部副プログラム,外部絵定義を外部手続き定義という。
さらに,主プログラムと外部手続き定義をプログラム単位という。
内部手続き定義は,プログラム単位の内部に書かれる手続き定義で,変数やoption base, option angleなどの宣言をプログラム単位と共有する。
プログラム単位は,独立した存在で,引数以外の変数や宣言を共有することはない。
例1 内部手続き
100 FUNCTION fact(n) 110 LET p=1 120 FOR i=1 TO n 130 LET p=i*p 140 NEXT i 150 LET fact=p 160 END FUNCTION 170 FOR i=1 TO 10 180 PRINT fact(i) 190 NEXT i 200 END
100行から160行までの関数定義はnの階乗を計算するものである。
しかし,120行から140行のforループが実行されると,170行から180行のforループが用いているiの値も変わってしまうため,意図したようには動作しない。
例2 外部手続き
160 DECLARE EXTERNAL FUNCTION fact 170 FOR i=1 TO 10 180 PRINT fact(i) 190 NEXT i 200 END 300 EXTERNAL FUNCTION fact(n) 310 LET p=1 320 FOR i=1 TO n 330 LET p=i*p 340 NEXT i 350 LET fact=p 360 END FUNCTION
170行から190行までのforループで用いられる変数iと300行以降の関数定義部で用いられる変数iは別物であるので,干渉せずに実行される。