والدینتان شما و خواهر یا برادرتان را به یک بازی بسکتبال دو در دو دعوت کردهاند. آنها که مطمئناند برنده میشوند، اجازه میدهند چند امتیاز اول را بگیرید، اما بعد کمکم بازی را در دست میگیرند. برای اینکه کمی روحیه بگیرید، شروع میکنید به حرف زدن به «پیگ لاتین»، زبانی ساختگی و کودکانه که فهمیدنش برای کسانی که دیگر کودک نیستند دشوار است. این به شما برتری میدهد تا بر والدینتان پیروز شوید!
وظیفهی شما این است که متن را از انگلیسی به 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" -> "ay" (با "qu" آغاز میشود، بدون همخوان پیش از آن)"square" -> "aresqu" -> "aresquay" (با یک همخوان و سپس "qu" آغاز میشود)اگر واژهای با یک یا چند همخوان و سپس "y" آغاز شود، ابتدا همخوانهای پیش از "y" را به پایان واژه منتقل کنید و سپس صدای "ay" را به پایان واژه اضافه کنید.
چند مثال:
"my" -> "ym" -> "ymay" (با یک همخوان و سپس "y" آغاز میشود)"rhythm" -> "ythmrh" -> "ythmrhay" (با چند همخوان و سپس "y" آغاز میشود)در Exercism ثبتنام کنید تا Delphi Pascal را همراه با 76 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
ما نگاهی به تطبیق الگو و عبارتهای باقاعده میاندازیم و یک راهحل زیبای Prolog را هم بررسی میکنیم و از شما میپرسیم: آیا تمرین را حل کردید یا فقط تستها را پاس کردید؟