IIm18-Kreativaufgabe1

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SchemeJS</language>
== Aufgabenstellung ==


Modellieren Sie die skurrilen Deutungen von Unendlichkeit am Beispiel [https://web1.hszg.de/cwagenknecht-lehre/TI/Berechenbarkeitstheorie/VL/hilbertbus-CW.pdf ”Hilbertbus“] im ProgrammingWiki.

Wer wohnt in Zimmer 234? Hinweis: Verwenden Sie streams.

Arbeiten Sie im Team an Verbesserungen und ggf. an Erweiterungen.


=== Hilfsfunktionen ===

<code id="5cfd7282efed6">
;Streambehandlung
(define stream-car car)

(define stream-cdr
  (lambda (stm)
    (force (cdr stm))))


;; Konstruktoren

(define-syntax stream-cons
  (syntax-rules ()
    ((_ head tail) (cons head (delay tail)))))

(define stream-item
  (lambda (str k)
    (if (= k 0)
        (stream-car str)
        (stream-item (stream-cdr str) (- k 1)))))


</code>

=== Hotel bauen ===


<code id="5cfd7282eff44">(define baue-hilberthotel
  (lambda ()
    (stream-cons #f (baue-hilberthotel)))
  )
</code>

<code id="5cfd7282effa7">(define hilberthotel (baue-hilberthotel))</code>

<code id="5cfd7282f0006">(define zeig-mir
  (lambda (stm n)
    (cond
      ((= n 0)
       (cond
         ((void? stm) (display ""))
         (else
          (display "...\n"))))
      (else
       (display (stream-car stm))
       (display ", ")
       (zeig-mir (stream-cdr stm) (- n 1))))))
</code>
<run id="5cf7eff092710">(zeig-mir hilberthotel 12)</run>