Zusammengesetzte Daten in Racket
Records
Schüler-> Schüler mit Record Name, Note
(define-record schueler
make-schueler
schueler?
(schueler-name string)
(schueler-punkte real))
Ausprobieren in der Shell
Was machen die einzelnen Prompts
> (make-schueler "Phoenix" 460)
> (schueler? phoenix)
> (define phoenix (make-schueler "Phoenix" 460))
> (schueler? phoenix)
> (schueler-name phoenix)
> (schueler-punkte phoenix)
;Überprüft ob Schüler:in das Abitur schon bestanden hat
(: abitur-bestanden? (schueler -> boolean))
(check-expect (abitur-bestanden? (make-schueler "Schuelerin1" 150)) #f)
(check-expect (abitur-bestanden? (make-schueler "Schuelerin2" 500)) #t)
(define abitur-bestanden?
(lambda (s)
(cond
([<= 500 (schueler-gesamtpunkte s)] #t)
([> 500 (schueler-gesamtpunkte s)] #f)
)))
Record für ein Computer
Record für ein Computer oder ein Handy (evtl. Smartphone spannender)
Binäre Fallunterscheidung
-> Lässt sich noch vereinfachen zu if-Condition
Rote Box