Zum Inhalt
k2
Aus ProgrammingWiki
<
BuK
<
IIm11
<
Studenten
<
sidatasc
Die Durchschnittsmenge zweier aufzählbar unendlicher Mengen ist ebenso aufzählbar.
;; Selektoren (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))))) ;; Praedikat (define stream? (lambda (stm) (and (pair? stm)(promise? (cdr stm))))) ;; Operationen mit streams (define print-stream (lambda (stm n) (cond ((<= n 0) (display "...\n")) (else (display (stream-car stm)) (display ", ") (print-stream (stream-cdr stm) (- n 1)))))) (define stream-item (lambda (str k) (if (= k 0) (stream-car str) (stream-item (stream-cdr str) (- k 1)))))
(define enthalten? (lambda(element liste) (cond [(not (list? liste)) #f] [(null? liste) #f] [(= (car liste) element) #t] [else (enthalten? element (cdr liste))] ) ) ) (define bilde-sm (lambda (f g) (letrec( (suche-element (lambda (f-pool g-pool index) (let ( (f-element (f index)) (g-element (g index)) ) (begin (if (enthalten? f-element g-pool) (stream-cons f-element (suche-element f-pool (append g-pool (list g-element)) (+ index 1))) (if (enthalten? g-element (append f-pool (list f-element))) (stream-cons g-element (suche-element (append f-pool (list f-element)) g-pool (+ index 1))) (suche-element (append f-pool (list f-element)) (append g-pool (list g-element)) (+ index 1)) ) ) ) ) ) )) (suche-element '() '() 1) ) ) )
(define f (lambda (x) (+ (* 2 x) 1))) (define g (lambda (x) (* x x))) (define sm (bilde-sm f g)) (print-stream sm 10)
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten