selbstdefinierte Datentypen < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 18:28 Mo 08.12.2008 | Autor: | haski |
Aufgabe | Es soll aus einem Datentyp ein bestimmtes Element zurückgegeben werden |
Hintergrund:
data StateE = StateE Model [Edge]
deriving Show
-- bildet eine Kante aus dem Index der Klausel mit Hilfe des Models
buildEdge :: StateE -> [Edge]
buildEdge (StateE m k) = concat [[(-x,y) | x <- c , y <- [last c], x /= y], k]
where c = a2 ! (fromIntegral (clauseIx m))
t2 = buildEdge (StateE [(4,I,3,1),(3,I,2,1),(2,I,1,1),(1,I,4,0)] [(1,2)])
data G_edges a = EdgeResult a
deriving Show
-- bildet sukzessive alle Kanten für den Implikationsgraphen mit Hilfe des Models
buildEdges :: StateE -> (G_edges StateE)
buildEdges (StateE m k)
| trace (show (StateE m k)) False = undefined
| m == [] = EdgeResult (StateE m k)
| m /= [] = let newStateE = (StateE (tail m) (buildEdge (StateE m k))) in
case (buildEdges newStateE) of
EdgeResult e -> EdgeResult e
t3 = buildEdges (StateE [(4,I,3,1),(3,I,2,1),(2,I,1,1),(1,I,4,0)] [(1,2)])
Ich konstruiere mir Tupel (aus einer Liste bestehend aus Quadrupel), die ich später als Eingabe für die Kanten eines Graphen benötige.
Aus einem selbstdefinierten Datentyp:
data StateE = StateE Model [Edge]
deriving Show
möchte ich nur [Edge] ausgeben lassen.
Meine Überlegung ist:
get_edge :: (G_edges StateE) => StateE -> [Edge]
get_edge (StateE m k) = k
das funktioniert leider nicht. Es ist bestimmt sehr einfach. Brauche eure Hilfe !!
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:20 Mi 10.12.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|