diff options
| author | manuel <manuel@mausz.at> | 2012-03-23 17:44:30 +0100 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2012-03-23 17:44:30 +0100 |
| commit | af2639ac7e4bd714fae65fbe17ccb1177f0e2abb (patch) | |
| tree | 8da88c4c9640b32583cf34813c65966c9ccef73b | |
| parent | d772ddd6979fc88d3e6e5255bb23850b64688111 (diff) | |
| download | ffp-af2639ac7e4bd714fae65fbe17ccb1177f0e2abb.tar.gz ffp-af2639ac7e4bd714fae65fbe17ccb1177f0e2abb.tar.bz2 ffp-af2639ac7e4bd714fae65fbe17ccb1177f0e2abb.zip | |
implement pd
| -rw-r--r-- | AufgabeFFP1.hs | 16 | ||||
| -rw-r--r-- | TestAufgabeFFP1.hs | 12 |
2 files changed, 27 insertions, 1 deletions
diff --git a/AufgabeFFP1.hs b/AufgabeFFP1.hs index eb9d1fc..8dd52e1 100644 --- a/AufgabeFFP1.hs +++ b/AufgabeFFP1.hs | |||
| @@ -1,5 +1,21 @@ | |||
| 1 | module AufgabeFFP1 | 1 | module AufgabeFFP1 |
| 2 | where | 2 | where |
| 3 | 3 | ||
| 4 | -- calculates 2^ with each element of the continuous list | ||
| 4 | pof2s :: [Integer] | 5 | pof2s :: [Integer] |
| 5 | pof2s = map (2^) [0,1..] | 6 | pof2s = map (2^) [0,1..] |
| 7 | |||
| 8 | -- alternate: | ||
| 9 | -- pof2s :: [Integer] | ||
| 10 | -- pof2s = iterate (2*) 1 | ||
| 11 | |||
| 12 | ------------------------------------------------------------------------------- | ||
| 13 | |||
| 14 | -- iterate steps: | ||
| 15 | -- (1) [1] | ||
| 16 | -- (2) zipWith (+) ([0,1]) ([1,0]) = [1,1] | ||
| 17 | -- (3) zipWith (+) ([0,1,1]) ([1,1,0]) = [1,2,1] | ||
| 18 | -- (4) zipWith (+) ([0,1,2,1]) ([1,2,1,0]) = [1,3,3,1] | ||
| 19 | -- ... | ||
| 20 | pd :: [[Integer]] | ||
| 21 | pd = iterate (\row -> zipWith (+) ([0] ++ row) (row ++ [0])) [1] | ||
diff --git a/TestAufgabeFFP1.hs b/TestAufgabeFFP1.hs index 1380c17..e119a3e 100644 --- a/TestAufgabeFFP1.hs +++ b/TestAufgabeFFP1.hs | |||
| @@ -16,8 +16,18 @@ pof2sTests = TestList [pof2s1] | |||
| 16 | 16 | ||
| 17 | ------------------------------------------------------------------------------- | 17 | ------------------------------------------------------------------------------- |
| 18 | 18 | ||
| 19 | pd1 :: Test | ||
| 20 | pd1 = TestCase (assertEqual "pd" [[1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1], | ||
| 21 | [1,5,10,10,5,1], [1,6,15,20,15,6,1], [1,7,21,35,35,21,7,1], | ||
| 22 | [1,8,28,56,70,56,28,8,1], [1,9,36,84,126,126,84,36,9,1], | ||
| 23 | [1,10,45,120,210,252,210,120,45,10,1]] (take 11 pd)) | ||
| 24 | |||
| 25 | pdTests = TestList [pd1] | ||
| 26 | |||
| 27 | ------------------------------------------------------------------------------- | ||
| 28 | |||
| 19 | tests :: [Test] | 29 | tests :: [Test] |
| 20 | tests = [pof2s1] | 30 | tests = [pof2s1, pdTests] |
| 21 | 31 | ||
| 22 | main = do | 32 | main = do |
| 23 | forM tests $ \test -> | 33 | forM tests $ \test -> |
