دستورالعملها
با داشتن اسم دانشآموزان و پایهای که در آن هستند، فهرستی برای مدرسه تهیه کنید.
در پایان، باید بتوانید:
- اسم یک دانشآموز را به فهرست یک پایه اضافه کنید:
- «جیم را به پایه ۲ اضافه کنید.»
- «باشد.»
- فهرست همهی دانشآموزانی را که در یک پایه ثبتنام کردهاند بگیرید:
- «چه دانشآموزانی در پایه ۲ هستند؟»
- «فعلاً فقط جیم را داریم.»
- فهرست مرتبشدهای از همهی دانشآموزان در همهی پایهها بگیرید.
پایهها باید به ترتیب ۱، ۲، ۳ و غیره مرتب شوند و دانشآموزان درون هر پایه باید بر اساس اسم به ترتیب الفبایی مرتب شوند.
- «الان چه کسانی در مدرسه ثبتنام کردهاند؟»
- «بگذارید فکر کنم.
آنا، بارب و چارلی در پایه ۱ هستند، الکس، پیتر و زوئی در پایه ۲، و جیم در پایه ۵.
پس پاسخ این است: آنا، بارب، چارلی، الکس، پیتر، زوئی و جیم.»
توجه کنید که همهی دانشآموزان ما فقط یک اسم دارند (شهر کوچکی است، چه انتظاری دارید؟) و هیچ دانشآموزی را نمیتوان بیش از یک بار به یک پایه یا به فهرست اضافه کرد.
اگر یک تست بخواهد همان دانشآموز را بیش از یک بار اضافه کند، پیادهسازی شما باید نشان دهد که این کار نادرست است.
نکتهها
برای این تمرین، ویژگی زیر از F# به کارتان میآید:
- نوع Map کلیدها را به مقدارها نسبت میدهد. این نوع بسیار شبیه نوع
Dictionary<TKey, TValue> در .NET است، اما یک تفاوت مهم دارد: Map تغییرناپذیر است.
-
اختصار نوع برای ساختن نامی گویا برای نوعی پیچیدهتر به کار میرود.
منبع
یک جلسهی برنامهنویسی دونفره با Phil Battos در gSchool