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