Треки
/
Factor
Factor
/
Вправи
/
Початкова школа
Початкова школа

Початкова школа

Середня

Вказівки

Маючи імена учнів і клас, у якому вони навчаються, створіть список учнів школи.

Зрештою, ми маємо вміти:

  • Додати імʼя учня до списку учнів класу:
    • «Додати Jim до 2 класу.»
    • «Гаразд.»
  • Отримати список усіх учнів, зарахованих до класу:
    • «Які учні в 2 класі?»
    • «Поки що в нас є лише Jim.»
  • Отримати відсортований список усіх учнів з усіх класів. Класи мають бути відсортовані як 1, 2, 3 тощо, а учні в межах класу мають бути відсортовані за абеткою за іменем.
    • «Хто зараз навчається в школі?»
    • «Зараз подумаю. У 1 класі в нас Anna, Barb і Charlie, у 2 класі Alex, Peter і Zoe, а в 5 класі Jim. Тож відповідь така: Anna, Barb, Charlie, Alex, Peter, Zoe і Jim.»

Зауважте, що всі наші учні мають лише одне імʼя (це маленьке містечко, а чого ж іще чекати?), і жодного учня не можна додати до класу чи до списку більше ніж один раз. Якщо тест спробує додати того самого учня більше ніж один раз, реалізація має вказати, що це помилка.

Слова

Визначте кортеж school для зберігання списку студентів (як саме зберігати студентів усередині нього, вирішуйте самі), а потім реалізуйте наведені нижче слова.

  • <school> ( -- school ): створює порожню школу.
  • add-student ( school name grade -- ? ): додає name до класу grade. Повертає t у разі успіху або f, якщо name уже додано (до цього чи будь-якого іншого класу); у цьому разі список студентів залишається без змін.
  • roster ( school -- names ): усі студенти, відсортовані спочатку за класом, а потім за імʼям за абеткою.
  • grade ( school n -- names ): студенти класу n, відсортовані за імʼям за абеткою.

Джерело

Сеанс парного програмування з Філом Баттосом у gSchool
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Factor Exercism

Час розпочати Початкова школа?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Factor, а також 47 концепцій163 вправи та справжнє наставництво від людей, і все це безкоштовно.