Sha256: 823744dbfc9aca4fd2c02a1c0f3ecfc1fe7899f55fd9220039895813fa1e3f63

Contents?: true

Size: 504 Bytes

Versions: 229

Compression:

Stored size: 504 Bytes

Contents

module Phone (number) where
import Data.Char (isDigit)

number :: String -> Maybe String
number input = clean input >>= check

check :: String -> Maybe String
check ('0':_) = Nothing
check ('1':_) = Nothing
check (_:_:_:'0':_) = Nothing
check (_:_:_:'1':_) = Nothing
check s = Just s

clean :: String -> Maybe String
clean input
  | len == 10 = Just digits
  | len == 11 && head digits == '1' = Just $ tail digits
  | otherwise = Nothing
  where digits = filter isDigit input
        len = length digits

Version data entries

229 entries across 229 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.179 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.178 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.177 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.176 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.175 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.174 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.173 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.172 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.171 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.170 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.169 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.167 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.166 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.165 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.164 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.163 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.162 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.161 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs
trackler-2.2.1.160 tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs