Guest User

Untitled

a guest
Apr 26th, 2018
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. type Perm = [Int]
  2. data Parity = Odd | Even deriving Show
  3.  
  4. oddtest = [1,3,2,4,5] :: Perm
  5. eventest = [1,4,2,3,5] :: Perm
  6.  
  7. genPairs :: Int -> [(Int, Int)]
  8. genPairs l = [(a,b) | a <- [1..l], b <- [1..l], a < b]
  9.  
  10.  
  11. inversion :: Perm -> (Int,Int) -> Bool
  12. inversion p (x,y) = o x > o y
  13. where
  14. o a = p !! (a-1)
  15.  
  16.  
  17. countInversions p = length $ filter id $ map (inversion p) $ genPairs $ length p
  18.  
  19. parity :: Perm -> Parity
  20. parity p | even $ countInversions p = Even
  21. | otherwise = Odd
Add Comment
Please, Sign In to add comment