Bob

Bob

Facile

Introduction

Bob est un adolescent nonchalant. Il aime penser qu'il est très cool. Et il ne s'emballe surtout pas pour quoi que ce soit. Ça ne serait pas cool.

Quand on lui parle, ses réponses sont assez limitées.

Instructions

Ta tâche consiste à déterminer ce que Bob répondra quand on lui dit quelque chose ou qu'on lui pose une question.

Bob ne répond jamais que par l'une de ces cinq phrases :

  • « Sure. » C'est sa réponse si on lui pose une question, comme « How are you? » La convention utilisée pour les questions est qu'elles se terminent par un point d'interrogation.
  • « Whoa, chill out! » C'est sa réponse si tu lui CRIES DESSUS. La convention utilisée pour crier est d'écrire TOUT EN MAJUSCULES.
  • « Calm down, I know what I'm doing! » C'est ce qu'il dit si tu lui cries une question.
  • « Fine. Be that way! » C'est ainsi qu'il réagit au silence. La convention utilisée pour le silence est rien, ou différentes combinaisons de caractères d'espacement.
  • « Whatever. » C'est ce qu'il répond à tout le reste.

Indices

Tu dois implémenter la fonction responseFor qui renvoie la réponse de Bob pour une entrée donnée. Tu peux utiliser la signature fournie si tu n'es pas sûr des types, mais ne la laisse pas brider ta créativité :

responseFor :: String -> String

Pour résoudre cet exercice, tu peux te renseigner sur :

Cet exercice travaille sur des données textuelles. Pour des raisons historiques, le type String de Haskell est synonyme de [Char], une liste de caractères. Pour manipuler plus efficacement des données textuelles, on peut utiliser le type Text.

Comme prolongement facultatif à cet exercice, tu peux

  • Te renseigner sur les types de chaînes de caractères en Haskell.

  • Ajouter - text à ta liste de dépendances dans package.yaml.

  • Importer Data.Text de la façon suivante :

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • Tu peux maintenant écrire par exemple responseFor :: Text -> Text et faire appel aux combinateurs de Data.Text, par exemple T.isSuffixOf.

  • Consulte la documentation de Data.Text,

  • Tu peux ensuite remplacer toutes les occurrences de String par Text dans Bob.hs :

    responseFor :: Text -> Text
    

Cette partie est entièrement facultative.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Haskell Exercism

Prêt à commencer Bob ?

Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.