| 関数 | 返す |
| サブルーチン | 返さない |
J=FUNC(2) /* 関数っぽく呼び出せる SAY J /* 4 EXIT FUNC: PROCEDURE ARG N RETURN N*N
I=10 CALL SUB I SAY I /* 10 EXIT SUB: PROCEDURE ARG I SAY I /* 10 I=50 /* Iを変更 SAY I /* 50 RETURN
I=10 ARRAY.=0 CALL SUB SAY I /* 50 10 ではない SAY ARRAY.2 /* 100 0 ではない EXIT SUB: PROCEDURE EXPOSE I ARRAY. /* I と ARRAY. を参照渡しとする(名前はここで決まってしまう) SAY I /* 10 I=50 /* Iを変更 SAY I /* 50 ARRAY.2=100 RETURN
I=100 REFERENCE='I' CALL SUB SAY I /* 500 K=200 REFERENCE='K' CALL SUB SAY K /* 500 EXIT SUB: PROCEDURE (REFERENCE) /* 参照渡しする変数名を示す変数は REFERENCE という名前にすると決める REF=WORD(REFERENCE,1) /* REFERENCE の最初のワードが、参照渡しされた変数名 SAY VALUE(REF) /* 最初の呼び出しでは 100、2番目では 200 VALUE(REF,500) RETURN
2010-11-09
2009-12-27
2009-11-11
2009-10-30