Zadania (Scheme)

  1. Jakie są wartości następujących wyrażeń?

    > 10 

    > (+ 5 3 4)

    > (- 9 1)

    > (/ 6 2)

    > (+ ( * 2 4) (- 4 6))

    > (let ((a 1) (b 2)) (+ a b (* a b)))

    > a

    > (define a 3)

    > a

    > (define b (+ a 1))

    > (+ a b (* a b))

    > (= a b)

    > (if (and (> b a) (< b (* a b))) b a)

    > (cond ((= a 4) 6) ((= b 4) (+ 6 7 a)) (else 25))
  2. Proszę napisać funkcje nwd a b oraz nww a b, których wartościami są największy wspólny dzielnik i najmniejsza wspólna wielokrotność.

  3. Proszę napisać funkcję (new.< x y), (new.> x y), (new.= x y), (new.<= x y), (new.>= x y) oraz (new.<> x y). Należy z wbudowanych funkcji używać wyłącznie funckcję < oraz funkcje boolowskie.

  4. Proszę napisać funkcje (odd? n) oraz (even? n), które sprawdzają, czy liczba naturalna n jest nieparzysta albo parzysta. Należy używać wyłącznie funkcje #t, #f, zero? oraz funkcję"-1", która odejmuje 1 z liczby naturalnej n.

  5. Proszę napisać funkcję (same-values? p1 p2 x y), której wartość jest #t, jeżeli p1(x,y) i p2(x,y) mają tą samą wartość i #f w przecziwnym przypadku.
    Przykłady:
     > (same-values? = new.= 3 1)
       #t
     > (same-values? < > 2 3)
       #f