Mercurial > hg > Members > atton > delta_monad
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/haskell/Example/Delta.hs Fri Feb 06 16:28:54 2015 +0900 @@ -0,0 +1,36 @@ +module Example.Delta where + +import Data.Numbers.Primes +import Delta + +-- samples + +generator :: Int -> Delta [Int] +generator x = let intList = [1..x] in + return intList + +primeFilter :: [Int] -> Delta [Int] +primeFilter xs = let primeList = filter isPrime xs + refactorList = filter even xs in + deltaFromList [ primeList, refactorList] + +count :: [Int] -> Delta Int +count xs = let primeCount = length xs in + return primeCount + +primeCount :: Int -> Delta Int +primeCount x = generator x >>= primeFilter >>= count + +bubbleSort :: [Int] -> Delta [Int] +bubbleSort [] = return [] +bubbleSort xs = bubbleSort remainValue >>= (\xs -> deltaFromList [ (sortedValueL : xs), + (sortedValueR ++ xs)] ) + where + maximumValue = maximum xs + sortedValueL = maximumValue + sortedValueR = replicate (length $ filter (== maximumValue) xs) maximumValue + remainValue = filter (/= maximumValue) xs + + + +