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

Version Path
trackler-2.2.1.180 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.179 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.178 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.177 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.176 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.175 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.174 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.173 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.172 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.171 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.170 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.169 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.167 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.166 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.165 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.164 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.163 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.162 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.161 tracks/purescript/exercises/isogram/examples/src/Isogram.purs
trackler-2.2.1.160 tracks/purescript/exercises/isogram/examples/src/Isogram.purs