内部絵定義

 内部絵定義(PICTURE〜END PICTURE構文)は,内部手続きの一つで,機能的には副プログラムとほとんど同じもの。
内部絵定義は,プログラム単位の内部に書かれる絵定義で,PICTURE行で始まり,END PICTURE行で終わる。

例3 内部絵定義

100 OPTION ANGLE DEGREES
110 SET WINDOW -4,4,-4,4
120 DRAW polygon(6)
130 DRAW polygon(7) WITH ROTATE(-90/7)*SCALE(1.5)*SHIFT(2,2) 
140 PICTURE polygon(n)
150    FOR i=0 TO n
160       PLOT LINES:COS(i*360/n),SIN(i*360/n);
170    NEXT i
180 END PICTURE
190 END

解説
100行から190行まで,すなわちプログラム全体が主プログラム。
140行から180行までの部分が内部絵定義。

内部絵定義の特徴
内部絵定義の内部で利用している引数以外の変数は,プログラム単位中の同名の変数と共有される。たとえば,次のプログラムでは,120行から140行で用いられる変数iと絵定義polygonでのiとは区別されない。そのため,130行でpolygonを呼び出したときにiの値が書き換えられてしまい,for〜nextループが正しく動作しない。
例4

100 OPTION ANGLE DEGREES
110 SET WINDOW -4,4,-4,4
120 FOR i=-4 to 4
130    DRAW polygon(7) WITH SHIFT(i,i)
140 NEXT i 
150 PICTURE polygon(n)
170     FOR i=0 TO n
180        PLOT LINES:COS(i*360/n),SIN(i*360/n);
190     NEXT i
200 END PICTURE
210 END