summaryrefslogtreecommitdiffstats
path: root/AufgabeFFP6.hs
diff options
context:
space:
mode:
authortotycro <totycro@unknown-horizons.org>2012-05-15 02:49:41 +0200
committertotycro <totycro@unknown-horizons.org>2012-05-15 02:49:41 +0200
commite61a59a792be2d2d1130067d6691622a32052a6c (patch)
tree7e8297d84c73dc97c3b76b2456a8a81edf847da9 /AufgabeFFP6.hs
parente7c03b3c3a9da4941f27c708bcf55f411f3daecf (diff)
downloadffp-e61a59a792be2d2d1130067d6691622a32052a6c.tar.gz
ffp-e61a59a792be2d2d1130067d6691622a32052a6c.tar.bz2
ffp-e61a59a792be2d2d1130067d6691622a32052a6c.zip
yield_gtf compiliert
Diffstat (limited to 'AufgabeFFP6.hs')
-rw-r--r--AufgabeFFP6.hs37
1 files changed, 35 insertions, 2 deletions
diff --git a/AufgabeFFP6.hs b/AufgabeFFP6.hs
index b786854..73e5d62 100644
--- a/AufgabeFFP6.hs
+++ b/AufgabeFFP6.hs
@@ -29,7 +29,7 @@ eval f g = myfoldl' (elems g) (elems f)
29 29
30yield :: F -> W -> [G] 30yield :: F -> W -> [G]
31yield = yield_bt 31yield = yield_bt
32-- yield = yield_gtf 32--yield = yield_gtf
33 33
34-------------------------------------------------------------------------------- 34--------------------------------------------------------------------------------
35 35
@@ -88,7 +88,40 @@ yield_bt f w = map (\(_, _, _, g) -> listArray (1, length g) g) nodes
88 88
89-------------------------------------------------------------------------------- 89--------------------------------------------------------------------------------
90 90
91-- yield_gtf :: F -> W -> [G] 91yield_gtf :: F -> W -> [G]
92yield_gtf = filt . transform . generate
93
94generate :: F -> W -> (F, W, [G])
95--generate f w = (f, w, [ array (1,n) [ (i, j) | i<-[1..n], j<-[(+), (-), (*)] ] ] )
96generate f w = (f, w, [ array (1,n) [(i, j) | i<-[1..n], j<-[(+)] ] ] )
97 where
98 n = snd $ bounds f
99 --ops = [(+), (-), (*), (./.)]
100 --entries = [ (i, j) | i<-[1..3] , j<-ops ]
101
102transform :: (W -> (F,W,[G])) -> W -> ((F, W, [G]), [W])
103transform fun = fun2
104 where
105 fun2 = \w -> (fun w, [1])
106
107filt :: (W -> ((F,W,[G]),[W]) ) -> W -> [G]
108filt fun w = [ g!!i | i <- [0..n], res!!i == w ]
109 where
110 ( (f, _, g), res ) = fun w
111 n = (length g) - 1
112
113third :: (F, W, [G]) -> [G]
114third (_, _, g) = g
115
116--generate :: F -> (F, W, [G])
117--generate f = \w -> (f, w, [ array (1,2) [ (1,(+)), (2,(+)) ] ] )
118--
119--transform :: (F, W, [G]) -> (F, W, [G])
120--transform fun = fun
121--
122--filt :: (F, W, [G]) -> [G]
123--filt (f, w, g) = g
124
92 125
93-------------------------------------------------------------------------------- 126--------------------------------------------------------------------------------
94 127