Scheme

asdfman

Neuling
Thread Starter
Mitglied seit
17.01.2009
Beiträge
101
Mahlzeit.

Ich las heute von der Collatz conjecture, und dachte, das ließe sich ja in Scheme schnell hin bauen.
Ich habe ja mein SICP gelesen, also dachte ich, das wäre eigentlich kein Problem.

Auftritt Source:
Code:
(define (collatz n)
  ((display n)
   (newline)
   (if (> n 1)
       (if (odd? n) (collatz (+ (* 3 n) 1))
           (collatz (/ n 2)))
       1)))
Das spuckt mir zwar die Zahlen aus, aber sobald 1 erreicht ist, gibts einen Fehler.

€: "Einen Fehler"? Es gibt diesen Fehler:
procedure application: expected procedure, given: #<void>; arguments were: #<void> 1

Was nun?
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Falls es einen interessiert: Hab den Fehler gefunden. Lösung:
Code:
(define collatz
  (lambda (n)
    (display n)
    (newline)
    (if (> n 1)
        (if (odd? n) (collatz (+ (* 3 n) 1))
            (collatz (/ n 2)))
        1)))
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh