From 251afc1ce861519ab3b54d599edc9db84d3e1e56 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Tue, 12 Jan 2016 09:20:44 -0500 Subject: added one/three.scm --- one/three.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 one/three.scm (limited to 'one') diff --git a/one/three.scm b/one/three.scm new file mode 100644 index 0000000..53a8a3c --- /dev/null +++ b/one/three.scm @@ -0,0 +1,32 @@ +(define-module (one three) + #:export (square sum-of-squares largest first-arg-2nd-largest-p + sum-of-squares-of-largest-two)) + +(define (square x) (* x x)) + +(define (sum-of-squares x y) + (+ (square x) (square y))) + +(define (largest x y z) + (cond ((and (>= x y) + (>= x z)) x) + ((and (>= y x) + (>= y z)) y) + ((and (>= z x) + (>= z y)) z))) + +(define (first-arg-2nd-largest-p x y z) + (or (and (>= x y) + (<= x z)) + (and (<= x y) + (>= x z)) + )) + +(define (sum-of-squares-of-largest-two x y z) + (sum-of-squares (largest x y z) + (cond ((first-arg-2nd-largest-p x y z) + x) + ((first-arg-2nd-largest-p y x z) + y) + ((first-arg-2nd-largest-p z x y) + z)))) -- cgit v1.2.3