Mercurial > hg > Members > atton > delta_monad
view 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 source
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