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 را در Bob.hs با Text جایگزین کنید:
responseFor :: Text -> Text
این بخش کاملاً اختیاری است.