Sha256: c40a99430e71349a059c263af3b11dcdd687bd6cc7df8f14d67de0a032999904

Contents?: true

Size: 887 Bytes

Versions: 141

Compression:

Stored size: 887 Bytes

Contents

module Bob
  ( hey
  ) where

import Prelude
import Data.String as String
import Data.Either as Either
import Data.String.Regex as Regex
import Data.String.Regex.Flags (noFlags)
import Partial.Unsafe as Partial

hey :: String -> String
hey msg =
  if hasLetters msg && allUppercase msg then
    "Whoa, chill out!"
  else if isQuestion msg then
    "Sure."
  else if isSilence msg then
    "Fine. Be that way!"
  else
    "Whatever."


allUppercase :: String -> Boolean
allUppercase str =
  String.toUpper str == str


isQuestion :: String -> Boolean
isQuestion =
  testRegex "\\?$"


hasLetters :: String -> Boolean
hasLetters =
  testRegex "[a-zA-Z]"


isSilence :: String -> Boolean
isSilence =
  testRegex "^[\\s\\t\\n]*$"


testRegex :: String -> String -> Boolean
testRegex patternStr =
  Regex.test
  $ Partial.unsafePartial
  $ Either.fromRight
  $ Regex.regex patternStr noFlags

Version data entries

141 entries across 141 versions & 1 rubygems

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