{-# LANGUAGE DerivingStrategies #-}
module Strings
(
CharList(..)
, removeNonUpperCase
) where
newtype CharList = CharList { CharList -> String
getCharList :: String }
deriving stock (CharList -> CharList -> Bool
(CharList -> CharList -> Bool)
-> (CharList -> CharList -> Bool) -> Eq CharList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CharList -> CharList -> Bool
== :: CharList -> CharList -> Bool
$c/= :: CharList -> CharList -> Bool
/= :: CharList -> CharList -> Bool
Eq, Int -> CharList -> ShowS
[CharList] -> ShowS
CharList -> String
(Int -> CharList -> ShowS)
-> (CharList -> String) -> ([CharList] -> ShowS) -> Show CharList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CharList -> ShowS
showsPrec :: Int -> CharList -> ShowS
$cshow :: CharList -> String
show :: CharList -> String
$cshowList :: [CharList] -> ShowS
showList :: [CharList] -> ShowS
Show)
removeNonUpperCase :: String -> String
removeNonUpperCase :: ShowS
removeNonUpperCase String
s = [Char
c | Char
c <- String
s, Char
c Char -> String -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` [Char
'A' .. Char
'Z']]