s n h m r u
i

Rekursive Verarbeitung

Eine neue Liste konstruieren

In der Teilnehmerliste kommen einige Personen vor, die noch keine 18 Jahre alt sind. Für einige Exkursionen müssen diese Personen einen zusätzlichen Nachweis erbringen, dass sie auch tatsächlich an der Exkursion teilnehmen dürfen.

Mit einer Funktion mindestens18 soll eine neue Liste erzeugt werden, die alle Personen enthält, die mindestens 18 Jahre alt sind.

Signatur:
mindestens18: List Person -> List Person
Beispiele:
mindestens18 [{ alter = 16, ... },{ alter = 20, ... },{ alter = 18, ... }] ->
    [{ alter = 20, ... },{ alter = 18, ... }]

Aufgabe 1

Zur Konzeption der Funktion mindestens18 verwenden wir Rekursion. Erkläre die folgenden Reduktionsregel

Rekursionsanfang:

mindestens18 [] -> 
    []

Rekursionsschritt - Fall 1:

mindestens18 { alter = 16, ... }::restliste ->
    mindestens18 restliste

Rekursionsschritt - Fall 2:

mindestens18 { alter = 20, ... }::restliste ->
    { alter = 20, ... }::(mindestens18 restliste)

Aufgabe 2

Bei der Implementierung der Reduktionsregeln zur Funktion mindestens18 verwenden wir Mustervorgaben. Ergänze die folgende Funktionsdefinition. Teste sie anschließend mit geeigneten Funktionsaufrufen.

module Teilnehmerliste exposing (..)

...

mindestens18: List Person -> List Person
mindestens18 liste = 
    case liste of
        [] ->
            ...
        e :: restliste ->
            if e.alter >= 18 then
                ...
            else
                ...

Aufgabe 3

Entwickle analog eine Funktion unter18.

Suche

v
100.110.2.9.2.1.3
inf-schule.de/entwuerfe/fp_elm_alteversion/elm_programme/listen/teilnehmerliste/lernstrecke/verarbeitenrekursiv
inf-schule.de/100.110.2.9.2.1.3
inf-schule.de/@/page/J52iLNjycPEHv3Ny

Rückmeldung geben