Bob

Bob

Fácil

Introducción

Bob es un adolescente apático. Le gusta pensar que es muy guay. Y desde luego no se emociona por las cosas. Eso no sería guay.

Cuando la gente le habla, sus respuestas son bastante limitadas.

Instrucciones

Tu tarea es determinar qué responderá Bob cuando alguien le diga algo o le haga una pregunta.

Bob solo responde una de estas cinco cosas:

  • "Sure." Esta es su respuesta si le haces una pregunta, como "How are you?" La convención que se usa para las preguntas es que terminan con un signo de interrogación.
  • "Whoa, chill out!" Esta es su respuesta si le GRITAS. La convención que se usa para los gritos es escribir TODO EN MAYÚSCULAS.
  • "Calm down, I know what I'm doing!" Esto es lo que dice si le gritas una pregunta.
  • "Fine. Be that way!" Así responde al silencio. La convención que se usa para el silencio es nada, o varias combinaciones de caracteres de espacio en blanco.
  • "Whatever." Esto es lo que responde a cualquier otra cosa.

Pistas

Necesitas implementar la función responseFor, que devuelve la respuesta de Bob para una entrada dada. Puedes usar la firma proporcionada si no estás seguro de los tipos, pero no dejes que limite tu creatividad:

responseFor :: String -> String

Para resolver este ejercicio puedes leer sobre:

Este ejercicio trabaja con datos textuales. Por razones históricas, el tipo String de Haskell es sinónimo de [Char], una lista de caracteres. Para manejar los datos textuales de forma más eficiente, se puede usar el tipo Text.

Como ampliación opcional de este ejercicio, puedes

  • Leer sobre los tipos de string en Haskell.

  • Añadir - text a tu lista de dependencias en package.yaml.

  • Importar Data.Text de la siguiente manera:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • Ahora puedes escribir, por ejemplo, responseFor :: Text -> Text y referirte a los combinadores de Data.Text como, por ejemplo, T.isSuffixOf.

  • Consultar la documentación de Data.Text,

  • Después puedes reemplazar todas las apariciones de String por Text en Bob.hs:

    responseFor :: Text -> Text
    

Esta parte es totalmente opcional.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Haskell Exercism

¿Listo para empezar Bob?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.