Bob

Bob

Fácil

Introdução

O Bob é um adolescente despreocupado. Gosta de pensar que é muito fixe. E, com certeza, não se entusiasma com nada. Isso não seria fixe.

Quando as pessoas lhe falam, as suas respostas são bastante limitadas.

Instruções

A tua tarefa é determinar o que o Bob responde a alguém quando lhe dizem algo ou lhe fazem uma pergunta.

O Bob só responde uma de cinco coisas:

  • "Sure." Esta é a resposta quando lhe fazes uma pergunta, como "Como estás?" A convenção usada para as perguntas é que estas terminam com um ponto de interrogação.
  • "Whoa, chill out!" Esta é a resposta quando GRITAS COM ELE. A convenção usada para os gritos é TODAS AS LETRAS MAIÚSCULAS.
  • "Calm down, I know what I'm doing!" É o que ele diz quando lhe gritas uma pergunta.
  • "Fine. Be that way!" É assim que ele responde ao silêncio. A convenção usada para o silêncio é nada, ou várias combinações de carateres de espaço em branco.
  • "Whatever." É o que ele responde a tudo o resto.

Dicas

Tens de implementar a função responseFor, que devolve a resposta do Bob para um determinado valor de entrada. Podes usar a assinatura fornecida se tiveres dúvidas quanto aos tipos, mas não deixes que isso restrinja a tua criatividade:

responseFor :: String -> String

Para resolveres este exercício, podes ler sobre:

Este exercício trabalha com dados textuais. Por razões históricas, o tipo String do Haskell é sinónimo de [Char], uma lista de carateres. Para um tratamento mais eficiente de dados textuais, podes usar o tipo Text.

Como extensão opcional deste exercício, podes

  • Ler sobre tipos de string em Haskell.

  • Adicionar - text à tua lista de dependências no package.yaml.

  • Importar Data.Text da seguinte forma:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • Agora podes escrever, por exemplo, responseFor :: Text -> Text e referir-te aos combinadores de Data.Text como, por exemplo, T.isSuffixOf.

  • Consultar a documentação de Data.Text,

  • Podes depois substituir todas as ocorrências de String por Text no Bob.hs:

    responseFor :: Text -> Text
    

Esta parte é totalmente opcional.

Editar via GitHub A ligação abre numa nova janela ou separador
Haskell Exercism

Estás pronto para começar Bob?

Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.