blob: 883e5c0eea556718dca9bf177711fa8e2fd38f36 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import System.Environment
import Data.List (mapAccumR)
import Data.Char (isNumber)
import Data.Maybe (catMaybes)
-- tested with: runhaskell ch-1.hs 9 10 7 5 6 1
leaderElement [] = [0] -- challenge spec.
leaderElement ls = (catMaybes.snd) $ mapAccumR revLeader (minimum ls) ls where
revLeader curLeader newElement
| curLeader <= newElement = (newElement, Just newElement)
| otherwise = (curLeader, Nothing)
main = do
(print.leaderElement.catMaybes)
=<< map (\nStr -> if (all isNumber nStr) then Just(read nStr :: Int)
else Nothing ) `fmap` getArgs
|