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)))))
;(define zeig-mir print-stream)
(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>
=== 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)
(display "...\n"))
(else
(display (stream-first stm))
(display ", ")
(zeig-mir (stream-rest stm) (- n 1))))))
</code>
<run id="5cf7eff092710">(zeig-mir hilberthotel 12)</run>