java-ja来てた??
問題1.3
問題1.3はJavaScriptとSchemeで考えながら解いた。
帰宅してから解答がおおよそ浮かび、翌日の朝やっと完了。
Gauche
(define (proc1 a b c) (if (and (<= a b)(<= a c)) (+ (proc2 b)(proc2 c)) (proc1 b c a))) (define (proc2 x) (* x x)) (print (proc1 1 2 3)) ;=>13 (print (proc1 2 4 3)) ;=>25 (print (proc1 5 4 3)) ;=>41 (print (proc1 1 1 1)) ;=>2
JavaScript
- defineはvarで宣言した変数に束縛する。function宣言だと書いてみたけどないわー。
- 原則returnで返す。
var proc1 = function(a,b,c){ if(a <= b && a <= c){ return proc2(b) + proc2(c); } return proc1(b,c,a); }; var proc2 = function(x){ return x * x; }; alert(proc1(1,2,3)); //=>13 alert(proc1(2,4,3)); //=>25 alert(proc1(5,4,3)); //=>41 alert(proc1(1,1,1)); //=>2