#lang racket #| SE 3 Funktional Blatt 4 Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel |# ; 1) ; 1. (max (min 2 (- 2 5)) 0) -> 0 ; zunächst wird (- 2 5) ausgeführt, was -3 ergibt ; als nächstes wird (min 2 -3) ausgeführt, was -3 ergibt ; dann kommt (max -3 0) mit dem Ergebnis 0 ; 2. (+ (- 2 13) 2) -> -9 ; zunächst wird (- 2 13) mit dem Ergebnis -11 ausgeführt ; anschließend wird (+ -11 2) ausgeführt mit dem Ergebnis -9 ; 3. (cadr '(Alle Jahre wieder)) -> 'Jahre ; zunächst wird (cdr '(Alle Jahre wieder)) ausgeführt mit dem Ergebnis '(Jahre wieder) ; anschließend wird (car '(Jahre wieder)) mit dem Ergebnis 'Jahre ausgeführt ; 4. (cddr '(kommt (das Weihnachtfest))) -> '() ; zunächst wird (cdr '(kommt (das Weihnachtfest))) ausgeführt mit dem Ergebnis '((das Weihnachtfest)) ; anschließend wird (cdr '((das Weihnachtfest))) ausgeführt mit dem Ergebnis '() ; dies liegt an der doppelt geschachtelten Liste: ; (cons 'kommt (list (list 'das 'Weihnachtfest))) -> '(kommt (das Weihnachtfest)) ; 5. (cons 'Listen '(ganz einfach und)) -> '(Listen ganz einfach und) ; da '(ganz einfach und) eine Liste ist, verkettet cons 'Listen schlichtweg mit der Liste ; 6. (cons 'Paare 'auch) -> '(Paare . auch) ; hier verkettet cons zwei einfache Elemente, wodurch ein Paar entsteht, welches keine Liste ist ; 7. (equal? (list 'Racket 'Prolog 'Java) '(Racket Prolog Java)) -> #t ; list erzeugt eine Liste mit den angegebenen Elementen und '(Racket Prolog Java) ist ebenfalls eine Liste mit den gleichen Elementen ; 8. (eq? (list 'Racket 'Prolog 'Java) (cons 'Racket '(Prolog Java))) -> #t ; list erzeugt wieder eine Liste und cons verknüpft hier ein einfaches Element mit einer Liste, wodurch wieder eine Liste entsteht ; 2) ; 1. ; ::= ; ::= ; ::= "MAYDAY "" ICH BUCHSTABIERE "" " ; ::= ; ::= " "" " ; ::= ; ::= ; ::= ; ::= ; ::= "ICH SENDE DEN TRÄGER --" ; ::= " " ; ::= " "" "" " ; ::= | ; ::= "NOTALLPOSITION " ; ::= "NOTFALLZEIT "