Mercurial > hg > Members > atton > delta_monad
comparison haskell/Example/Delta.hs @ 134:3f48bd08865f
Rename and split with module for haskell codes
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 06 Feb 2015 16:28:54 +0900 |
parents | |
children | bb0b2fb49a93 |
comparison
equal
deleted
inserted
replaced
133:7984c9f4b5eb | 134:3f48bd08865f |
---|---|
1 module Example.Delta where | |
2 | |
3 import Data.Numbers.Primes | |
4 import Delta | |
5 | |
6 -- samples | |
7 | |
8 generator :: Int -> Delta [Int] | |
9 generator x = let intList = [1..x] in | |
10 return intList | |
11 | |
12 primeFilter :: [Int] -> Delta [Int] | |
13 primeFilter xs = let primeList = filter isPrime xs | |
14 refactorList = filter even xs in | |
15 deltaFromList [ primeList, refactorList] | |
16 | |
17 count :: [Int] -> Delta Int | |
18 count xs = let primeCount = length xs in | |
19 return primeCount | |
20 | |
21 primeCount :: Int -> Delta Int | |
22 primeCount x = generator x >>= primeFilter >>= count | |
23 | |
24 bubbleSort :: [Int] -> Delta [Int] | |
25 bubbleSort [] = return [] | |
26 bubbleSort xs = bubbleSort remainValue >>= (\xs -> deltaFromList [ (sortedValueL : xs), | |
27 (sortedValueR ++ xs)] ) | |
28 where | |
29 maximumValue = maximum xs | |
30 sortedValueL = maximumValue | |
31 sortedValueR = replicate (length $ filter (== maximumValue) xs) maximumValue | |
32 remainValue = filter (/= maximumValue) xs | |
33 | |
34 | |
35 | |
36 |