(define (bar x y)
(if (> x y)
(let* ((x3 (* x x x))
(y3 (* y y y)))
(max (- x3 y3) y3))
0))
と C のプログラム
int bar (int x, int y) {
if (x > y) {
int x3 = x * x * x;
int y3 = y * y * y;
return max(x3 - y3, y3);
} else {
return 0;
}
}
は同じ事をしているといえるでしょう。
下の C のプログラムでは変数への代入は初期化以外は行っていないことに注意。
99.10.6/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp