مسیرها
/
Unison
Unison
/
تمرین‌ها
/
تطبیق پرانتزها
تطبیق پرانتزها

تطبیق پرانتزها

دشوار

مقدمه

به شما این فرصت داده شده است که برای Bracketeer™ نرم‌افزار بنویسید؛ یک مین‌فریم باستانی اما قدرتمند. نرم‌افزاری که روی آن اجرا می‌شود به زبانی اختصاصی نوشته شده است. بخش زیادی از نحوه‌ی نگارش آن آشناست، اما می‌بینید که کروشه، آکولاد و پرانتز زیادی وجود دارد. با اینکه Bracketeer™ قدرتمند است، انعطاف‌پذیری ندارد. اگر کد منبع کروشه، آکولاد یا پرانتز نامتوازنی داشته باشد، Bracketeer™ از کار می‌افتد و باید دوباره راه‌اندازی شود. برای پرهیز از چنین وضعیتی، شروع می‌کنید به نوشتن کدی که بتواند پیش از تلاش برای اجرای آن روی Bracketeer™ بررسی کند که کروشه‌ها، آکولادها و پرانتزها متوازن هستند.

دستورالعمل‌ها

یک رشته در نظر بگیرید که شامل کروشه []، آکولاد {}، پرانتز () یا هر ترکیبی از این‌هاست؛ بررسی کنید که همه‌ی جفت‌ها به‌درستی با هم تطبیق داده شده و تودرتو باشند. سایر نویسه‌ها باید نادیده گرفته شوند. برای مثال، "{what is (42)}?" «متوازن» است و "[text}" متوازن نیست.

پیاده‌سازی

راه‌های زیادی برای انجام این تمرین وجود دارد، اما ما چند «استاب» اضافی برای کسانی فراهم کرده‌ایم که می‌خواهند نوشتن «هندلرهای توانایی» خودشان را تمرین کنند.

امضای تابع کمکی checkBalance که برای این تمرین داده شده است، از یک نیازمندی «توانایی»، {Stack}، استفاده می‌کند. توانایی Stack برای شما تعریف شده است، اما هندلر، Stack.run، تعریف نشده است! اگر بخواهید، می‌توانید توابع Stack.run، checkBalance و isPaired را پیاده‌سازی کنید. تست‌ها حتی اگر بخواهید این تمرین را با توانایی‌ها پیاده‌سازی نکنید، اجرا می‌شوند.


منبع

Ginna Baker
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Unison Exercism

آماده‌اید تطبیق پرانتزها را شروع کنید؟

در Exercism ثبت‌نام کنید تا Unison را همراه با 53 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.