diff options
| author | totycro <totycro@unknown-horizons.org> | 2012-05-15 02:49:41 +0200 |
|---|---|---|
| committer | totycro <totycro@unknown-horizons.org> | 2012-05-15 02:49:41 +0200 |
| commit | e61a59a792be2d2d1130067d6691622a32052a6c (patch) | |
| tree | 7e8297d84c73dc97c3b76b2456a8a81edf847da9 /AufgabeFFP6.hs | |
| parent | e7c03b3c3a9da4941f27c708bcf55f411f3daecf (diff) | |
| download | ffp-e61a59a792be2d2d1130067d6691622a32052a6c.tar.gz ffp-e61a59a792be2d2d1130067d6691622a32052a6c.tar.bz2 ffp-e61a59a792be2d2d1130067d6691622a32052a6c.zip | |
yield_gtf compiliert
Diffstat (limited to 'AufgabeFFP6.hs')
| -rw-r--r-- | AufgabeFFP6.hs | 37 |
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 | ||
| 30 | yield :: F -> W -> [G] | 30 | yield :: F -> W -> [G] |
| 31 | yield = yield_bt | 31 | yield = 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] | 91 | yield_gtf :: F -> W -> [G] |
| 92 | yield_gtf = filt . transform . generate | ||
| 93 | |||
| 94 | generate :: F -> W -> (F, W, [G]) | ||
| 95 | --generate f w = (f, w, [ array (1,n) [ (i, j) | i<-[1..n], j<-[(+), (-), (*)] ] ] ) | ||
| 96 | generate 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 | |||
| 102 | transform :: (W -> (F,W,[G])) -> W -> ((F, W, [G]), [W]) | ||
| 103 | transform fun = fun2 | ||
| 104 | where | ||
| 105 | fun2 = \w -> (fun w, [1]) | ||
| 106 | |||
| 107 | filt :: (W -> ((F,W,[G]),[W]) ) -> W -> [G] | ||
| 108 | filt fun w = [ g!!i | i <- [0..n], res!!i == w ] | ||
| 109 | where | ||
| 110 | ( (f, _, g), res ) = fun w | ||
| 111 | n = (length g) - 1 | ||
| 112 | |||
| 113 | third :: (F, W, [G]) -> [G] | ||
| 114 | third (_, _, 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 | ||
