تحدّاك أنت وشقيقك والداكما في مباراة كرة سلة اثنين ضد اثنين. واثقَين من فوزهما، سمحا لك بتسجيل أول نقطتين، ثم بدآ بالسيطرة على المباراة. ولأنك كنت بحاجة إلى دفعة صغيرة، بدأت تتحدث بلغة Pig Latin، وهي لغة أطفال مُختلقة يصعب على غير الأطفال فهمها. سيمنحك هذا الأفضلية لتتفوق على والديك!
مهمتك هي ترجمة النص من الإنجليزية إلى Pig Latin. تُحدَّد الترجمة بأربع قواعد تنظر إلى نمط الحروف المتحركة والساكنة في بداية الكلمة. تنظر هذه القواعد إلى استخدام كل كلمة للحروف المتحركة والساكنة:
a وe وi وo وu
إذا بدأت الكلمة بحرف متحرك، أو بدأت بـ "xr" أو "yt"، فأضف صوت "ay" إلى نهاية الكلمة.
على سبيل المثال:
"apple" -> "appleay" (تبدأ بحرف متحرك)"xray" -> "xrayay" (تبدأ بـ "xr")"yttria" -> "yttriaay" (تبدأ بـ "yt")إذا بدأت الكلمة بحرف ساكن واحد أو أكثر، فانقل تلك الحروف الساكنة أولًا إلى نهاية الكلمة، ثم أضف صوت "ay" إلى نهاية الكلمة.
على سبيل المثال:
"pig" -> "igp" -> "igpay" (تبدأ بحرف ساكن واحد)"chair" -> "airch" -> "airchay" (تبدأ بعدة حروف ساكنة)"thrush" -> "ushthr" -> "ushthray" (تبدأ بعدة حروف ساكنة)إذا بدأت الكلمة بصفر أو أكثر من الحروف الساكنة متبوعة بـ "qu"، فانقل تلك الحروف الساكنة (إن وُجدت) والجزء "qu" أولًا إلى نهاية الكلمة، ثم أضف صوت "ay" إلى نهاية الكلمة.
على سبيل المثال:
"quick" -> "ickqu" -> "ickquay" (تبدأ بـ "qu"، دون حروف ساكنة قبلها)"square" -> "aresqu" -> "aresquay" (تبدأ بحرف ساكن واحد متبوع بـ "qu")إذا بدأت الكلمة بحرف ساكن واحد أو أكثر متبوعًا بـ "y"، فانقل الحروف الساكنة التي تسبق "y" أولًا إلى نهاية الكلمة، ثم أضف صوت "ay" إلى نهاية الكلمة.
بعض الأمثلة:
"my" -> "ym" -> "ymay" (تبدأ بحرف ساكن واحد متبوع بـ "y")"rhythm" -> "ythmrh" -> "ythmrhay" (تبدأ بعدة حروف ساكنة متبوعة بـ "y")سجّل في Exercism لتتعلّم وتتقن Roc عبر 120 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
نلقي نظرة على مطابقة الأنماط والتعبيرات النمطية، وعلى حل أنيق بلغة Prolog، ونسأل: هل حللت التمرين فعلًا أم جعلت الاختبارات تنجح فحسب؟