Bob

Bob

Facile

Introduzione

Bob è un adolescente svogliato. Gli piace pensare di essere molto figo. E di certo non si entusiasma per le cose. Non sarebbe figo.

Quando le persone gli parlano, le sue risposte sono piuttosto limitate.

Istruzioni

Il tuo compito è determinare cosa risponderà Bob quando qualcuno gli dice qualcosa o gli fa una domanda.

Bob risponde sempre e solo in uno di cinque modi:

  • "Sure." Questa è la sua risposta se gli fai una domanda, come «How are you?» La convenzione usata per le domande è che finiscono con un punto interrogativo.
  • "Whoa, chill out!" Questa è la sua risposta se gli urli contro. La convenzione usata per gli urli è TUTTO IN MAIUSCOLO.
  • "Calm down, I know what I'm doing!" Questo è quello che dice se gli urli una domanda.
  • "Fine. Be that way!" Questo è come risponde al silenzio. La convenzione usata per il silenzio è niente, o varie combinazioni di caratteri di spaziatura.
  • "Whatever." Questo è quello che risponde a tutto il resto.

Suggerimenti

Devi implementare la funzione responseFor che restituisce la risposta di Bob per un dato input. Puoi usare la firma fornita se non sei sicuro dei tipi, ma non lasciare che limiti la tua creatività:

responseFor :: String -> String

Per risolvere questo esercizio puoi documentarti su:

Questo esercizio lavora con dati testuali. Per ragioni storiche, il tipo String di Haskell è sinonimo di [Char], un array di caratteri. Per gestire i dati testuali in modo più efficiente, si può usare il tipo Text.

Come estensione facoltativa di questo esercizio, puoi:

  • Leggere qualcosa su tipi di stringa in Haskell.

  • Aggiungere - text all'elenco delle dipendenze in package.yaml.

  • Importare Data.Text nel modo seguente:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • Ora puoi scrivere ad esempio responseFor :: Text -> Text e fare riferimento ai combinatori di Data.Text come ad esempio T.isSuffixOf.

  • Consultare la documentazione di Data.Text,

  • Successivamente puoi sostituire tutte le occorrenze di String con Text in Bob.hs:

    responseFor :: Text -> Text
    

Questa parte è del tutto facoltativa.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Haskell Exercism

Vuoi iniziare Bob?

Iscriviti a Exercism per imparare e padroneggiare Haskell con 107 esercizi e il mentoring di persone reali, tutto gratis.