Ich bin neu in Haskell, so dass ich versuche, herauszufinden, wie man Baum-Traversalen zu tun.
Hier ist das Beispiel des Unternehmens (mit einer leichten Änderung), das ich in mehreren Zeitungen gesehen habe
data Company = C [Dept] deriving (Eq, Show, Typeable, Data)
data Dept = D Name Manager [Unit] deriving (Eq, Show, Typeable, Data)
data ThinkTank= TK Name [Unit] deriving (Eq, Show, Typeable, Data)
data Unit = PU Employee | DU Dept deriving (Eq, Show, Typeable, Data)
data Employee = E Person Salary deriving (Eq, Show, Typeable, Data)
data Person = P Name Address deriving (Eq, Show, Typeable, Data)
data Salary = S Float deriving (Eq, Show, Typeable, Data)
type Manager = Employee
type Name = String
type Address = String
Ich möchte einen Mitarbeiter von seinem derzeitigen Standort in eine bestimmte Abteilung versetzen. Diese Person könnte in einer Abteilung oder einem ThinkTank sein.
Es scheint einfach zu sein, Dinge in SYB zu tun, solange man nur einen Typ verwendet, aber ich bin mir nicht sicher, wie man mit mehreren Datentypen umgeht.