Diskussion:Verzögerte Evaluation und Streams
Aus ProgrammingWiki
Sprachelemente
Ergänzung und Korrektur in der Tabelle zu den stream-Sprachelementen:
| Prozedur | Parameter | Beschreibung |
|---|---|---|
| stream-cdr | stream | analog zu cdr |
| stream-cons | element stream | analog zu cons |
Grenzwert
Vorschlag zur Aufgabenstellung Grenzwert:
Schreiben Sie eine Prozedur grenzwert, die den Grenzwert einer Zahlenfolge bestimmt. Diese soll den Grenzwert g einer als Stream repräsentierten Zahlenfolge stm zurückgeben, wenn ab einem gewissen Index i sämtliche Folgenglieder in einer hinreichend kleinen \varepsilon-Umgebung (eps) von g liegen. Falls min Folgenglieder in dieser \varepsilon-Umgebung liegen, wird Konvergenz vermutet und das i-te Folgenglied zurückgegeben. Ist das nicht der Fall, wird die Suche nach max Folgengliedern abgebrochen und #f zurückgegeben.
Lösungsvorschlag:
(define grenzwert
(lambda (stm eps min max)
(cond
[(< max 0) #f]
[(< min 0) (stream-car stm)]
[(< (abs (- (stream-car stm) (stream-car (stream-cdr stm)))) eps)
(grenzwert (stream-cdr stm) eps (- min 1) (- max 1))]
[else
(grenzwert (stream-cdr stm) eps min (- max 1))])))