یک جرثقیل انبار را با کد هدایت کنید و جعبههای رنگی را با محدودیتی در تعداد دستورها دوباره بچینید که آنقدر تنگ است که بازگشت را ناگزیر میکند.
از دستورهای جرثقیل (حرکت به چپ و راست، گرفتن، رها کردن و شرطهای رنگ) برنامهای بسازید تا ظرفهای جعبهها را به شکل پشته هدف بازچینی کنید. محدودیت دستورها عمداً تنگ است، پس به فرمان Call تکیه خواهید کرد که کل برنامه شما را از ابتدا دوباره اجرا میکند؛ شرطی که برقرار نباشد همان حالت پایهای میشود که بازگشت را متوقف میکند. ده مرحله دستساز وجود دارد، از یک جعبه قرمز تنها تا برجی ششجعبهای، و هشت تا از آنها بدون Call حلشدنی نیستند.
برج سهتایی: سه جعبه قرمز در ظرف 1 قرار دارند و باید به ظرف 2 بروند، و فقط شش دستور مجاز است. اگر همهچیز را جداگانه بنویسید، هر جعبه به Grab، Right، Drop و Left نیاز دارد، یعنی یازده دستور برای سه جعبه، حتی پس از حذف آخرین Left. شش دستور کافی نیست.
پس یک رفتوبرگشت بنویسید و بگذارید تکرار شود: Grab، If-held red، Right، Drop، Left، Call. این شش دستور است. جرثقیل جعبهای را میگیرد، بررسی میکند که قرمز در دست دارد، آن را میبرد، زمین میگذارد، برمیگردد و کل برنامه را دوباره فرا میخواند. در فراخوانی چهارم ظرف 1 خالی است، Grab چیزی برنمیدارد، بررسی If-held red شکست میخورد و برنامه متوقف میشود. همین بررسی ناموفق حالت پایه است.
If-held red را به If-held blue تغییر دهید تا همان شش دستور مرحله چهارجعبهای و برج ششجعبهای را هم حل کنند، چون این روال هیچوقت جعبهها را نمیشمارد؛ تا وقتی جعبهای باقی است ادامه میدهد. نکته بازگشت همین است: برنامه یک گام و یک قاعده توقف را توصیف میکند، و ورودی تعیین میکند چند بار اجرا شود.
Claw Compiler بازگشت را از طریق جرثقیلی که جعبهها را روی هم میچیند و بودجهای سختگیرانه برای حرکتها آموزش میدهد و ایدهای دشوار را ملموس میکند.
دستورهای جرثقیل — حرکت به چپ و راست، گرفتن، رها کردن، و شرطهایی بر اساس رنگ — یک زبان اسمبلی کمینهاند که بدنی فیزیکی به آن متصل است.
آموزش برنامهنویسی از راه یک ربات کوچک در دنیایی کوچک به Karel the Robot برمیگردد، زبان مبتدیانی که ریچارد پتیس در کتابی در سال 1981 معرفی کرد و در درسهایش در دانشگاه استنفورد به کار برد. بازیها این ایده را برگرفتند: Lightbot با برنامهنویسی رباتی در یک هزارتو حلقهها و رویهها را آموزش میدهد، و نزدیکترین نیای Claw Compiler بازی Cargo-Bot است، پازلی برای iPad از سال 2012 که در آن به رباتی یاد میدهید جعبهها را جابهجا کند. Two Lives Left آن را همراه با روی ویانا و بر پایه نمونه اولیه او در اپلیکیشن برنامهنویسیشان برای iPad، یعنی Codea، ساخت و آن را نخستین بازی که تماماً روی iPad برنامهنویسی شده معرفی کرد.
کار، یعنی بازچینی ظرفهای جعبهها به شکل یک پشتهی هدف، مرتبسازی به دست ماشینی است که هر بار دقیقاً یک چیز را میتواند نگه دارد. این محدودیت تکچنگکی خودش درسی جداگانه است. همان قیدی است که یک ثبات تحمیل میکند، و به همین دلیل مرتبسازی واقعی به جایی برای زمین گذاشتن چیزها نیاز دارد — کشف اینکه به یک ظرف اضافی نیاز دارید، کشف ایدهی ذخیرهسازی موقت است.
از آنجا که Call همیشه آخرین دستور است، هر برنامهای در اینجا بازگشتی دنبالهای است: فراخوانی خود، آخرین کاری است که انجام میدهد. بسیاری از پیادهسازیهای زبانها یک فراخوانی دنبالهای را به پرشی ساده به ابتدا تبدیل میکنند، و به همین دلیل همان برنامه را میتوان هم بازگشت خواند و هم حلقه. دیدن اینکه این دو یک ایدهاند بخش بزرگی از فهم بازگشت است.
Claw Compiler یک بازی مرورگری اصلی و رایگان است که برای PlayPendium ساخته شده: یک زبان جرثقیل با هفت دستور، ده مرحله که محدودیتهایشان بازگشت را ضروری میکند نه اختیاری، یک مرحله روزانه مشترک و یک حالت تمرین که بقیه مراحل را ارائه میدهد.