3. 再帰呼び出し
def fact(n){ fact(10)
ret = 1
if(n > 1){
prev = fact(n - 1)
ret = prev * n
}
ret
}
4. 関数内で定義されている関数
def main(n){ def add(a, b){
var i = 0; a + b + c;
var c = 1; }
var ret = 0; }
while(i < n){
ret = add(ret, i); main(10);
i=i+1
}
ret
5. 外側のブロックの変数を参照できる
def main(n){ def add(a, b){
var i = 0; これを参照 a + b + c;
var c = 1; }
var ret = 0; }
while(i < n){
ret = add(ret, i); main(10);
i=i+1
}
ret
6. 静的スコープ
def main(n){ def add(a, b){
var i = 0; これを参照 a + b + c;
var c = 1; }
var ret = 0; }
while(i < n){
ret = add(ret, i); main(10);
i=i+1
}
ret
7. To Do
• 関数内で定義された関数の再帰呼び出しは
できるのか確認する
• 関数内で定義された二つの関数の、
相互の呼び出しができるかどうかを確認する