i

Definition eines neuen Datentyps

Eine Typdeklaration verwenden

Der einfachste Weg aus der im letzten Abschnitt beschriebenen Problematik besteht darin, selbst einen neuen Datentyp für Befehle einzuführen.

module Interpreter exposing (..)

type Befehl 
    = LI                    -- links
    | RE                    -- rechts
    | VW Int                -- vorwärts ...
> import Interpreter exposing (..)

> LI
LI : Befehl
> VW 2
VW 2 : Befehl
> [VW 2, RE, VW 4, LI, VW 2]
[VW 2,RE,VW 4,LI,VW 2]
    : List Befehl

Mit type Befehl wird der neue Datentyp Befehl definiert.

Die Datenwerte des neuen Datentyps Befehl werden in der Typdeklaration genau angegeben. Es sind die Datenwerte LI und RE für die Drehungen sowie VW ... (wobei hier für die drei Punkte eine Int-Zahl eingesetzt werden muss) für die Vorwärtsbewegung.

Mit diesen Datenwerten vom Typ Befehl kann man jetzt eine Liste mit Daten des Typs Befehl erstellen. Die Welt ist damit für Elm wieder in Ordnung.

Aufgabe 1

Teste die oben gezeigte Typdeklaration mit einer selbst vorgegebenen Befehlsliste.

Aufgabe 2

Der folgende Quelltext enthält weitere Typdeklarationen. Analysiere den Quelltext und erläutere alle Detail. Teste selbst.

module Interpreter exposing (..)

type Befehl 
    = LI                    -- links
    | RE                    -- rechts
    | VW Int                -- vorwärts ...

type alias Programm = List Befehl

programm1: Programm
programm1 = [VW 2, RE, VW 4, LI, VW 2]

type Richtung
    = N     -- Norden
    | O     -- Osten
    | S     -- Süden
    | W     -- Westen

type alias Akteur = (Int, Int, Richtung) 

akteur: Akteur
akteur = (0,0,N)
> import Interpreter exposing (..)
> akteur
(0,0,N) : Akteur
> programm1
[VW 2,RE,VW 4,LI,VW 2]
    : Programm

Suche

v
8.2.2.8.2.1.2
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/typdefinition/interpreter/lernstrecke/typdeklaration
dev.inf-schule.de/8.2.2.8.2.1.2
dev.inf-schule.de/@/page/nNJE09Dysu2FG0ry

Rückmeldung geben