Übungsblatt 7 Aufgabe 26b

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Übungsblatt 7 Aufgabe 26b
hi, wär schön wenn sich das mal jemand anschaun könnte: http://www.heeen.de/wiki/index.php/Algo2Blatt07
danke :slight_smile:


Der Syntax von cond ist so:
(cond ((<bedingung>) <Anweisungen>)
      ((<bedingung>) <Anweisungen>)
      ...
)

Du hast bei dem if nochmal extra Klammern drumherum…


hast recht, danke -_-


Ich hab mir mal erlaubt einfach mal die komplette Lösung zu schreiben:

; generate integer list from start to end
(define (generate start end)
  (cond
    ((eq? start end) (cons start '()))
    (else (cons start (generate (+ 1 start) end)))
  )
)

; remove multiples of <x>
(define (remult list x)
  (cond
    ((null? list) '())
    (else (if (= 0 (modulo (car list) x))
              (remult (cdr list) x)
              (cons (car list) (remult (cdr list) x))))
  )
)

; return primes of <list> up to <end>
(define (primes list)
  (cond
    ((null? list) '())
    (else (cons (car list) (primes (remult (cdr list)(car list)))))
  )
)

; generate primes up to <n>
(define (gPr n)
  (cond
    ((<= n 3) (generate 1 n))
    (else (primes(generate 2 n)))
  )
)

*edit:
Die Reihenfolge der Funktionen entspricht der der Teilaufgaben auf dem zugehörigen Blatt.
*edit:
Und aus der primes/2 hab ich primes/1 gemacht. Fand ich einfacher und übersichtlicher, ausserdem spart man sich nen Parameter :slight_smile: