Sha256: 76aa227bd9fc5d9c87fbd58381ce2d90a90c0587e6ed589e897b19fdf89a148d
Contents?: true
Size: 578 Bytes
Versions: 242
Compression:
Stored size: 578 Bytes
Contents
module Isogram ( isIsogram ) where import Prelude import Data.Array (filter, foldl) import Data.Map (alter, empty, values) import Data.Maybe (Maybe(..)) import Data.String (toCharArray, toLower) import Data.Traversable (all) isIsogram :: String -> Boolean isIsogram = toLower >>> toCharArray >>> filter letter >>> foldl toMap empty >>> values >>> all (_ <= 1) where letter c = 'a' <= c && c <= 'z' toMap m c = alter addChar c m addChar Nothing = Just 1 addChar (Just c) = Just $ c + 1
Version data entries
242 entries across 242 versions & 1 rubygems