codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; sum of squares of two largest of three values (define-syntax assert (syntax-rules () ((assert expr result) (if (not (equal? expr result)) (for-each display `( #\newline "failed assertion:" #\newline expr #\newline "expected: " ,result #\newline "returned: " ,expr #\newline)))))) (define (test f) (assert (f 3 4 5) 41) (assert (f 3 5 4) 41) (assert (f 4 3 5) 41) (assert (f 4 5 3) 41) (assert (f 5 3 4) 41) (assert (f 5 4 3) 41) (assert (f 3 3 4) 25) (assert (f 3 4 3) 25) (assert (f 4 3 3) 25) (assert (f 3 4 4) 32) (assert (f 4 3 4) 32) (assert (f 4 4 3) 32) (assert (f 3 3 3) 18)) (define (f x y z) (if (< x y) (if (< x z) (+ (* y y) (* z z)) (+ (* x x) (* y y))) (if (< y z) (+ (* x x) (* z z)) (+ (* x x) (* y y))))) (display "First function") (test f) (newline) (define (f x y z) (if (= x (min x y z)) (+ (* y y) (* z z)) (f y z x))) (display "Second function") (test f) (newline) (define (f x y z) (cond ((and (< x y) (< x z)) (+ (* y y) (* z z))) ((and (< y x) (< y z)) (+ (* x x) (* z z))) (else (+ (* x x) (* y y))))) (display "Third function") (test f)
Private
[
?
]
Run code
Submit