Ο Bob είναι ένας νωχελικός έφηβος. Του αρέσει να πιστεύει ότι είναι πολύ κουλ. Και σίγουρα δεν ενθουσιάζεται με τίποτα. Αυτό δεν θα ήταν κουλ.
Όταν οι άλλοι τού μιλάνε, οι απαντήσεις του είναι αρκετά περιορισμένες.
Ο στόχος σου είναι να προσδιορίσεις τι θα απαντήσει ο Bob σε κάποιον όταν του πει κάτι ή του κάνει μια ερώτηση.
Ο Bob απαντάει πάντα μόνο ένα από πέντε πράγματα:
Πρέπει να υλοποιήσεις τη συνάρτηση responseFor που επιστρέφει την απάντηση του Bob
για μια δεδομένη είσοδο. Μπορείς να χρησιμοποιήσεις την υπογραφή που δίνεται αν δεν είσαι σίγουρος
για τους τύπους, αλλά μην την αφήσεις να περιορίσει τη δημιουργικότητά σου:
responseFor :: String -> String
Για να λύσεις αυτή την άσκηση, μπορείς να διαβάσεις σχετικά με:
Αυτή η άσκηση δουλεύει με κειμενικά δεδομένα. Για ιστορικούς λόγους, ο τύπος String της
Haskell είναι συνώνυμος με τον [Char], δηλαδή μια λίστα χαρακτήρων. Για πιο
αποδοτικό χειρισμό κειμενικών δεδομένων, μπορείς να χρησιμοποιήσεις τον τύπο Text.
Ως προαιρετική επέκταση αυτής της άσκησης, μπορείς
Διάβασε για τύπους συμβολοσειρών στη Haskell.
Πρόσθεσε το - text στη λίστα εξαρτήσεών σου στο package.yaml.
Εισήγαγε το Data.Text με τον ακόλουθο τρόπο:
import qualified Data.Text as T
import Data.Text (Text)
Μπορείς τώρα να γράψεις π.χ. responseFor :: Text -> Text και να αναφερθείς στους συνδυαστές του Data.Text ως π.χ. T.isSuffixOf.
Δες την τεκμηρίωση για το Data.Text,
Μπορείς μετά να αντικαταστήσεις όλες τις εμφανίσεις του String με Text στο Bob.hs:
responseFor :: Text -> Text
Αυτό το μέρος είναι εντελώς προαιρετικό.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Haskell με 107 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.