PPaste!

Home - All the pastes - Authored by Thooms

Raw version

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data Cartesian2D = Cartesian2D {
    xCoord :: Double,
    yCoord :: Double
} deriving (Eq, Show)


lowestCoord :: [Cartesian2D] -> Cartesian2D
lowestCoord (x:xs) = lowestCoordAux xs x

lowestCoordAux :: [Cartesian2D] -> Cartesian2D -> Cartesian2D
lowestCoordAux (h:xs) minValue =
    lowestCoordAux xs newMin
    where   hY      = (yCoord h)
            minY    = (yCoord minValue)
            hX      = (xCoord h)
            minX    = (xCoord minValue)
            newMin      = case hY `compare` minY of
                            LT -> h
                            GT -> minValue
                            EQ -> case hX `compare` minX of
                                LT -> h
                                GT -> minValue
                                EQ -> h
lowestCoordAux [] minValue = minValue