Aufgabe12-12-02 
 

Lambda-Kalkül

Aufgaben 1-3: Lösung:
(define ersetze (lambda ( v1 a v2 ) (cond ((null? a) '()) ((list? a) (cons (ersetze v1 (car a) v2) (ersetze v1 (cdr a) v2))) ((equal? a v1) v2) (else a)))) (define element? (lambda ( v1 a ) (cond ((null? a) #f) ((list? a) (if (element? v1 (car a)) #t (element? v1 (cdr a)))) ((equal? a v1) #t) (else #f)))) (define alpha (lambda (t v) (cond ((null? t) '()) ((element? v t) t) ((append (list 'lambda (list v)) (list (ersetze (car (cadr t)) (caddr t) v))))))) (define alpha (lambda (t v1) (cond ((null? t) ()) ((element? v1 t) t) (else (ersetze (caadr t) t v1))))) (define auto-alpha (lambda (l1 l2) (cond ((null? l2) l1) ((element? (car l2) l1) (auto-alpha l1 (cdr l2))) (else (alpha l1 (car l2)))))) Kommentar: Ich denke diese Aufgaben waren ja mal echt einfach und es bedarf nicht viel Erklärung. Da alle Funktionen auf einander aufbauen sind sie recht kurz und noch in Ansätzen überschaubar(halt Scheme).