Bob

Bob

سهل

مقدمة

Bob مراهق متراخٍ. يحب أن يظن أنه رائع جدًا. وهو بالتأكيد لا يتحمس للأشياء. فذلك لن يكون رائعًا.

عندما يتحدث الناس إليه، تكون ردوده محدودة جدًا.

التعليمات

مهمتك هي تحديد ما سيردّ به Bob على من يخاطبه بشيء أو يطرح عليه سؤالًا.

لا يجيب Bob إلا بأحد خمسة أشياء:

  • "Sure." هذا رده إذا سألته سؤالًا، مثل "كيف حالك؟" العرف المتبع في الأسئلة أنها تنتهي بعلامة استفهام.
  • "Whoa, chill out!" هذا جوابه إذا صرخت في وجهه. العرف المتبع في الصراخ هو كتابة الأحرف كلها كبيرة.
  • "Calm down, I know what I'm doing!" هذا ما يقوله إذا صرخت بسؤال في وجهه.
  • "Fine. Be that way!" هكذا يرد على الصمت. العرف المتبع في الصمت هو لا شيء، أو توليفات مختلفة من محارف المسافات البيضاء.
  • "Whatever." هذا ما يجيب به على أي شيء آخر.

تلميحات

عليك تنفيذ الدالة 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
    

هذا الجزء اختياري بالكامل.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Haskell Exercism

مستعد لبدء Bob؟

سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.