به شما این فرصت داده شده است که برای Bracketeer™ نرمافزار بنویسید؛ یک مینفریم باستانی اما قدرتمند. نرمافزاری که روی آن اجرا میشود به زبانی اختصاصی نوشته شده است. بخش زیادی از نحوهی نگارش آن آشناست، اما میبینید که کروشه، آکولاد و پرانتز زیادی وجود دارد. با اینکه Bracketeer™ قدرتمند است، انعطافپذیری ندارد. اگر کد منبع کروشه، آکولاد یا پرانتز نامتوازنی داشته باشد، Bracketeer™ از کار میافتد و باید دوباره راهاندازی شود. برای پرهیز از چنین وضعیتی، شروع میکنید به نوشتن کدی که بتواند پیش از تلاش برای اجرای آن روی Bracketeer™ بررسی کند که کروشهها، آکولادها و پرانتزها متوازن هستند.
یک رشته در نظر بگیرید که شامل کروشه []، آکولاد {}، پرانتز () یا هر ترکیبی از اینهاست؛ بررسی کنید که همهی جفتها بهدرستی با هم تطبیق داده شده و تودرتو باشند. سایر نویسهها باید نادیده گرفته شوند. برای مثال، "{what is (42)}?" «متوازن» است و "[text}" متوازن نیست.
راههای زیادی برای انجام این تمرین وجود دارد، اما ما چند «استاب» اضافی برای کسانی فراهم کردهایم که میخواهند نوشتن «هندلرهای توانایی» خودشان را تمرین کنند.
امضای تابع کمکی checkBalance که برای این تمرین داده شده است، از یک نیازمندی «توانایی»، {Stack}، استفاده میکند.
توانایی Stack برای شما تعریف شده است، اما هندلر، Stack.run، تعریف نشده است!
اگر بخواهید، میتوانید توابع Stack.run، checkBalance و isPaired را پیادهسازی کنید.
تستها حتی اگر بخواهید این تمرین را با تواناییها پیادهسازی نکنید، اجرا میشوند.