บังคับเครนในโกดังด้วยโค้ด เรียงลังหลากสีใหม่ภายใต้ขีดจำกัดคำสั่งที่แคบจนต้องใช้การเรียกซ้ำ
สร้างโปรแกรมจากคำสั่งของเครน (เลื่อนซ้ายและขวา หยิบ วาง และเงื่อนไขสี) เพื่อจัดลังในช่องต่าง ๆ ให้เป็นกองตามเป้าหมาย ขีดจำกัดคำสั่งตั้งไว้แคบโดยเจตนา คุณจึงต้องพึ่งคำสั่ง 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 ภาษาสำหรับผู้เริ่มต้นที่ Richard Pattis นำเสนอในหนังสือปี 1981 และใช้ในวิชาที่เขาสอนที่สแตนฟอร์ด เกมต่าง ๆ รับแนวคิดนี้ไปใช้: Lightbot สอนลูปและโพรซีเยอร์ด้วยการเขียนโปรแกรมให้หุ่นยนต์เดินผ่านเขาวงกต และบรรพบุรุษที่ใกล้ที่สุดของ Claw Compiler คือ Cargo-Bot เกมปริศนาบน iPad ปี 2012 ที่คุณสอนหุ่นยนต์ให้ย้ายลัง Two Lives Left สร้างเกมนี้ร่วมกับ Rui Viana จากต้นแบบของเขา ในแอปเขียนโค้ดบน iPad ของบริษัทชื่อ Codea และโฆษณาว่าเป็นเกมแรกที่เขียนโปรแกรมบน iPad ทั้งหมด
ภารกิจนี้ คือการจัดลังในช่องต่าง ๆ ให้เป็นกองตามเป้าหมาย เป็นการเรียงลำดับโดยเครื่องจักรที่ถือของได้ทีละชิ้นพอดี ข้อจำกัดของมือจับเดียวนี้เป็นบทเรียนในตัวเอง มันคือข้อจำกัดเดียวกับที่รีจิสเตอร์กำหนด และเป็นเหตุผลที่การเรียงลำดับจริงต้องมีที่วางของพักไว้ การค้นพบว่าคุณต้องใช้ช่องว่างสำรองคือการค้นพบแนวคิดของที่เก็บข้อมูลชั่วคราว
เนื่องจาก Call เป็นคำสั่งสุดท้ายเสมอ ทุกโปรแกรมในเกมนี้จึงเป็นแบบเรียกซ้ำที่ท้าย: การเรียกตัวเองคือสิ่งสุดท้ายที่มันทำ การอิมพลีเมนต์ภาษาจำนวนมากแปลงการเรียกที่ท้ายเป็นการกระโดดกลับไปต้นโปรแกรมธรรมดา โปรแกรมเดียวกันจึงอ่านได้ทั้งในฐานะการเรียกซ้ำและในฐานะลูป การเห็นว่าทั้งสองเป็นแนวคิดเดียวกันคือส่วนสำคัญของการเข้าใจการเรียกซ้ำ
Claw Compiler เป็นเกมเบราว์เซอร์ต้นฉบับที่เล่นฟรี สร้างขึ้นสำหรับ PlayPendium: ภาษาเครนเจ็ดคำสั่ง สิบด่านที่ขีดจำกัดทำให้การเรียกซ้ำเป็นสิ่งจำเป็นไม่ใช่ทางเลือก ด่านประจำวันที่ทุกคนเล่นเหมือนกัน และโหมดฝึกซ้อมที่สุ่มด่านอื่น ๆ ให้เล่น