Bob

Bob

Fácil

Introdução

Bob é um adolescente apático. Ele gosta de pensar que é muito descolado. E definitivamente não se empolga com as coisas. Isso não seria descolado.

Quando as pessoas falam com ele, as respostas são bem limitadas.

Instruções

Sua tarefa é determinar o que o Bob vai responder quando alguém diz algo para ele ou faz uma pergunta.

O Bob só responde uma de cinco coisas:

  • "Sure." Esta é a resposta dele quando você faz uma pergunta, como "How are you?" A convenção para perguntas é que elas terminam com um ponto de interrogação.
  • "Whoa, chill out!" Esta é a resposta dele quando você GRITA COM ELE. A convenção para gritar é escrever TUDO EM LETRAS MAIÚSCULAS.
  • "Calm down, I know what I'm doing!" É isso que ele diz quando você grita uma pergunta para ele.
  • "Fine. Be that way!" É assim que ele responde ao silêncio. A convenção para o silêncio é nada, ou várias combinações de caracteres de espaço em branco.
  • "Whatever." É isso que ele responde a qualquer outra coisa.

Dicas

Você precisa implementar a função responseFor que retorna a resposta do Bob para uma determinada entrada. Você pode usar a assinatura fornecida se não tiver certeza sobre os tipos, mas não deixe que ela restrinja sua criatividade:

responseFor :: String -> String

Para resolver este exercício, você pode 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 caracteres. Para lidar com dados textuais de forma mais eficiente, pode-se usar o tipo Text.

Como extensão opcional para este exercício, você pode

  • Ler sobre tipos de string em Haskell.

  • Adicionar - text à sua lista de dependências em package.yaml.

  • Importar Data.Text da seguinte forma:

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

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

  • Você pode então substituir todas as ocorrências de String por Text em Bob.hs:

    responseFor :: Text -> Text
    

Esta parte é totalmente opcional.

Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Bob?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.