دبستان

دبستان

آسان

دستورالعمل‌ها

با داشتن اسم دانش‌آموزان به‌همراه پایه‌ای که در آن هستند، یک فهرست برای مدرسه بسازید.

در پایان باید بتوانید:

  • اسم یک دانش‌آموز را برای یک پایه به فهرست اضافه کنید
    • «Jim را به پایه ۲ اضافه کنید.»
    • «بسیار خوب.»
  • فهرستی از همه‌ی دانش‌آموزان ثبت‌نام‌شده در یک پایه بگیرید
    • «چه دانش‌آموزانی در پایه ۲ هستند؟»
    • «فعلاً فقط Jim را داریم.»
  • فهرست مرتب‌شده‌ای از همه‌ی دانش‌آموزان در همه‌ی پایه‌ها بگیرید. پایه‌ها باید به ترتیب ۱، ۲، ۳ و غیره مرتب شوند و دانش‌آموزان درون یک پایه باید بر اساس اسم به ترتیب الفبا مرتب شوند.
    • «الان چه کسانی در مدرسه ثبت‌نام کرده‌اند؟»
    • «بگذارید فکر کنم. در پایه ۱ Anna، Barb و Charlie را داریم، در پایه ۲ Alex، Peter و Zoe و در پایه ۵ Jim. پس جواب این است: Anna، Barb، Charlie، Alex، Peter، Zoe و Jim»

توجه کنید که همه‌ی دانش‌آموزان ما فقط یک اسم دارند (شهر کوچکی است، چه انتظاری دارید؟) و هر دانش‌آموز را نمی‌توان بیش از یک بار به یک پایه یا به فهرست اضافه کرد. در واقع، وقتی یک test می‌کوشد دانش‌آموز یکسانی را بیش از یک بار اضافه کند، پیاده‌سازی شما باید نشان دهد که این کار نادرست است.

راهنمایی‌ها

برای تکمیل این تمرین باید نوع داده‌ی School را بسازید و توابع زیر را پیاده‌سازی کنید:

  • add
  • empty
  • grade
  • sorted

یک اعلان داده‌ی ساختگی و امضاهای نوع از قبل در جای خود قرار دارند، اما تعریف توابع و ساختن یک نوع داده‌ی معنادار، newtype یا مترادف نوع به عهده‌ی شماست.


منبع

یک جلسه‌ی برنامه‌نویسی دونفره با Phil Battos در gSchool
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Haskell Exercism

آماده‌اید دبستان را شروع کنید؟

در Exercism ثبت‌نام کنید تا Haskell را همراه با 107 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.