Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

I feel retarded, /prog/

Name: Anonymous 2010-01-14 22:05

I'm on SICP, and I've never programmed before, and I'm stuck on the most basic of SICP exercises...

Exercise 1.3.  Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.

Being the weakling that I am, I turned to google for help, and returned this program:

(define (square x) (* x x))
 
 (define (sum-of-squares x y)
   (+ (square x) (square y)))
 
 (define (largest-two-of-three x y z)
   (if (>= x y)
       (sum-of-squares x (if (>= y z) y z))
       (sum-of-squares y (if (>= x z) x z))))


It's the largest part I'm having problems with:
It defines the function "largest-two-of-three" with variables 'x', 'y' and 'z'. It goes on to state the parameters of the function as, if x is greater than y, do the sum of squares for x and, if y is greater than or equal to z, y and z, and if y isn't larger or equal to z, then z? Or, if x is less than y, do the sum of squares for y and, if x is greater than or equal to z, x, if not, z?

I know this is a really sad place to be stuck on, but I want to learn how to program rather much, and I won't let this stop me

Name: Anonymous 2010-01-15 15:14

>>22
Why does it irritate you?
The question it seems to be asking is, "Is the first element less than or equal to the other elements?" That is, it seems to me to be asking
(andmap <= (list x y z))
which would be true. I'm fine with it being false, it just isn't what I would intuit.
non-decreasing
It's a useful interpretation and I really like it, as it means "is b between a and c?" is just
(<= a b c)
and that's great.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List