المسارات
/
Haskell
Haskell
/
التمارين
/
السلسلة الغذائية
السلسلة الغذائية

السلسلة الغذائية

متوسط

التعليمات

أنشئ كلمات أغنية «I Know an Old Lady Who Swallowed a Fly».

يمكنك أن تنسخ الكلمات وتلصقها، أو أن تقرأها من ملف، لكن هذه المسألة تصبح أكثر إمتاعًا بكثير إذا تعاملت معها بطريقة خوارزمية.

هذه أغنية تراكمية مجهولة الأصل.

وهي واحدة من صيغ شائعة عديدة.

I know an old lady who swallowed a fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a spider.
It wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a bird.
How absurd to swallow a bird!
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a cat.
Imagine that, to swallow a cat!
She swallowed the cat to catch the bird.
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a dog.
What a hog, to swallow a dog!
She swallowed the dog to catch the cat.
She swallowed the cat to catch the bird.
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a goat.
Just opened her throat and swallowed a goat!
She swallowed the goat to catch the dog.
She swallowed the dog to catch the cat.
She swallowed the cat to catch the bird.
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a cow.
I don't know how she swallowed a cow!
She swallowed the cow to catch the goat.
She swallowed the goat to catch the dog.
She swallowed the dog to catch the cat.
She swallowed the cat to catch the bird.
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
She swallowed the spider to catch the fly.
I don't know why she swallowed the fly. Perhaps she'll die.

I know an old lady who swallowed a horse.
She's dead, of course!

تلميحات

هذا التمرين يدور حول إعادة هيكلة الكود، لذلك نقدم لك حلًا يجتاز الاختبارات بالفعل.

التحدي هو أن تعيد كتابته حتى تفتخر به، وأن تتعلم شيئًا في أثناء ذلك.

إذا كنت لا تعرف من أين تبدأ، فإليك بعض الأفكار:

  • حاول أن تقلل التكرار إلى الحد الأدنى.
  • حاول أن تجعل الكود مقروءًا.
  • عمّم حلك، بحيث تسمح للسيدة بابتلاع أشياء أخرى.

خذ وقتك.

غيّر شيئًا واحدًا في كل مرة، وتحقّق مما إذا كان حلك لا يزال يجتاز الاختبارات.

استمتع!


المصدر

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

مستعد لبدء السلسلة الغذائية؟

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