Übungen: Die Listenfunktion map und anonyme Funktionen
Aufgabe 1: Namen in Vorlage einfügen.
Eine Schüler:innengruppe plant, eine Racket-AG anzubieten. Nach der Anmeldephase erhalten sie folgende Anmeldeliste:
(define anmeldeliste
(list "Lena" "Amir" "Sophie" "Lukas" "Aisha" "Jonas" "Thabo" "David" "Yara" "Elias" "Clara" "Noah" "Zanele" "Samuel" "Mia" "Fatima" "Leon" "Anna" "Maria" "Emma" "Paul" "Chen" "Tim" "Sara" "Julian" "Zoe" "Ben" "Laila" "Max")
)
(a) Schreibe ein Racket-Programm, welches eine Liste produziert, die für
jeden Namen in der Liste "Hallo <Name>, willkommen in der Racket-AG!" enthält.
Aufgabe 2: mRNA zu Aminosäuren
In der Proteinbiosynthese werden im Körper neue Proteine hergestellt, indem verschiedene Aminosäuren zu einer Kette verknüpft werden. Welche Aminosäuren zu nutzen sind, ist in Form von Codons in der mRNA kodiert. Ein Codon besteht aus einer Kombination der vier Basen Adenin (A), Cytosin (C), Guanin (G) und Uracil (U). Insgesamt werden so mit 64 Codons 20 verschiedene Aminosäuren kodiert.
Die Basenabfolge einer mRNA lässt sich im Labor sehr schnell sequenzieren. Somit können wir anhand dieser Informationen auf den Aufbau der kodierten Proteine schließen. In dieser Aufgabe wollen wir uns exemplarisch mit 8 der 64 Codons genügen:
Codon | Aminosäure |
---|---|
AGU | Serin |
AUG | Methionin |
CAG | Glutamin |
CGA | Arginin |
CUG | Leucin |
GCC | Alanin |
UGG | Tryptophan |
UUU | Phenylalanin |
(a) Schreibe ein Programm, das anhand der ersten fünf Codons von Insulin und Keratin jeweils eine Liste mit den entsprechenden ersten fünf Aminosäuren produziert:
(define insulin-start (list "AUG" "GCC" "CUG" "UGG" "AUG"))
(define keratin-start (list "AUG" "AGU" "CGA" "CAG" "UUU"))
Aufgabe 3: Records für Schüler:innen-Noten
In der Erkundung haben wir uns überlegt, wie wir mittels des map
-Operators die Notenpunkte
der folgenden Liste erhöhen können:
(define klausurNoten
(list "Ahmad" 11 "Bianca" 8 "Cleo" 11 "Dev" 7 "Emil" 3 "Felia" 5 "Giray" 7))
Die Liste besteht dabei aus zwei Arten von Daten: Namen und Notenpunkten, wobei immer zwei aufeinanderfolgende Elemente
logisch zusammengehören.
Eine elegantere Möglichkeit, diese Informationen darzustellen, ist die Nutzung von Records.
(a) Erstelle eine geeignete Record-Definition zum Darstellen der entsprechenden Namen und Notenpunkte.
(b) Erstelle eine Liste, welche für jedes Schüler:innen-Noten-Paar einen Record enthält.
(c) Erhöhe die Notenpunkte in jedem Record in der Liste um 2.