Implement custom sorting methods
parent
8eccfcfbc4
commit
dd3db073db
@ -0,0 +1,8 @@
|
||||
module AllNames where
|
||||
|
||||
names :: [([Char], [Char])]
|
||||
names = [("Callum", "Kilmartin"),
|
||||
("Goudham","Suresh"),
|
||||
("Theo", "Hardman"),
|
||||
("Luca","Valentini"),
|
||||
("Cormac", "Muir")]
|
@ -0,0 +1,22 @@
|
||||
import Data.List (sort, sortBy)
|
||||
import AllNames (names)
|
||||
|
||||
compareLastNames :: Ord a1 => (a2, a1) -> (a3, a1) -> Ordering
|
||||
compareLastNames name1 name2 = if surname1 > surname2
|
||||
then GT
|
||||
else if surname1 < surname2
|
||||
then LT
|
||||
else EQ
|
||||
where surname1 = snd name1
|
||||
surname2 = snd name2
|
||||
|
||||
-- Using Guards for boolean expressions
|
||||
|
||||
-- compareLastNames :: Ord a1 => (a2, a1) -> (a3, a1) -> Ordering
|
||||
-- compareLastNames name1 name2
|
||||
-- | surname1 > surname2 = GT
|
||||
-- | surname1 < surname2 = LT
|
||||
-- | otherwise = EQ
|
||||
-- where
|
||||
-- surname1 = snd name1
|
||||
-- surname2 = snd name2
|
Loading…
Reference in New Issue