Riešenie niektorých zozbieraných úloh

Created: 2009-12-15 - 20:34

1. Vyjadrite pomocou car/cdr postupne a, b, c, d z vyrazu:

( 1 ( ( 1 a ) b ) c 1 ( d ) )

a) car cdaadr

b) car cdadr

c) caddr

d) caar cddddr

2. Napiste proceduru, ktora zo vstupneho pola cisel a1, ..., an vypocita: (a1*n + ... + an*n) / n

(define (procedurka x)
  (define (p x n v)
    (if (null? x)
        (/ v n)
        (p (cdr x) n (+ v (* (car x)n))))
    )
  (define (length x)
    (define (l x i)
      (if (null? x)
          i
          (l (cdr x) (add1 i))))
    (l x 0))
  (p x (length x) 0))