موضوع قبلی

3. باگ‌های لعنتی

موضوع بعدی

5. قانون شمارهٔ ۲

4. نشانهٔ تقدیر

ریبرگ دوست دارد نشانه جمع کند. وقتی یکی از آن‌ها را پیدا کند، اغلب برمی‌دارد‌، گاهی هم یکی را روی زمین می‌گذارد. دستورهایی که این کار را بکنند این‌ها هستند:

take()
put()

محیط نشانه‌ها ۱ را انتخاب کنید. یک نشانه دقیقاً کنار ریبرگ هست. به عدد ۱ قرمز رنگ کنارش نگاه کنید. این عدد بسته به تعداد نشانه‌های آن مکان تغییر می‌کند. قرمز بودن رنگ عدد مشخّص می‌کند که این تعداد مطابق با نتیجهٔ نهایی نیست. توی مربع بعدی یک سایهٔ خاکستری از نشانه را می‌بینیم. این سایه به ما می‌گوید که ما باید کاری کنیم که ریبرگ نشانه را در آن نقطه بگذارد. همین که این کار انجام بشود، می‌توانیم این قضیه را از سبز شدن عدد نوشته شدهٔ کنار نشانه‌ها بفهمیم. بعد از نشانهٔ خاکستری هم یک مربّع سبز هست. این مربّع، جایی را مشخّص می‌کند که ریبرگ باید بعد از به انجام رساندن تکلیف‌هایش، در نهایت، به آن‌جا برسد .

امتحان کن!

برنامه‌ای بنویسید که همین کار را انجام بدهد. آیا برنامهٔتان بدون تغییر برای محیط نشانه‌ها ۲ هم کار می‌کند؟ فعلاً جواب می‌بایست «نه» باشد.

...ولی، بعداً شما یاد می‌گیرید که چطور برنامه‌ای بنویسید که با هر دو تا محیط کار بکند.

یک کار دیگر را امتحان کن!

اگه ریبرگ بخواهد وقتی که هیچ نشانه‌ای همراه ندارد یکی را روی زمین بگذارد چه اتّفاقی می‌افتد؟ اگر وقتی ریبرگ جایی ایستاده باشد که نشانه ندارد، بخواهد یکی را بردارد چه پیش می‌آید؟

برای مدرّس‌ها

برای تکلیف اوّلی که در این درس گفته شده؛ محیط‌ها طوری طرّاحی شده‌اند که فقط یک نوع از هر شیئی وجود داشته باشد. وقتی بیشتر از یک نوع شیئ وجود داشته باشد، گاهی لازم است یک نشانوند (argument) به توابع وارد کنیم که شیئی را که قرار است به کار برود را مشخّص کند، مثل:

take("token")
put('token')