Skip to content

Instantly share code, notes, and snippets.

import Control.Monad (when)
import Data.Foldable (traverse_)
import Data.List (nub, uncons)
main :: IO ()
main = getContents >>= traverse_ (liftA2 when ((`all`
[ odd . length . filter (`notElem` "AEIOU")
, elem 'N'
, any (uncurry $ flip $ foldr ((.) . flip . ((||) .) . (. succ) . (==) <*> flip id) (const False)) . uncons