Треки
/
Lean
Lean
/
Вправи
/
Зустріч
Зустріч

Зустріч

Середня

Вступ

Щомісяця наш партнер зустрічається зі своїм найкращим другом. У них обох дуже щільний графік, тож знайти слушну дату непросто! А оскільки графік щільний і в нас, партнер завжди уточнює можливі дати зустрічі з нами:

  • «Можемо зустрітися першої пʼятниці наступного місяця?»
  • «А як щодо третьої середи?»
  • «Може, останньої неділі?»

Під час дзвінка цього місяця партнер запитує нас:

  • «Хотілося б зустрітися в надцятий четвер, гаразд?»

Спантеличені, ми питаємо, що таке надцятий день. Партнер пояснює, що надцятий день - це вигадане поняття, яке означає дні місяця, що закінчуються на «-надцяте»:

  • 13-те (тринадцяте)
  • 14-те (чотирнадцяте)
  • 15-те (пʼятнадцяте)
  • 16-те (шістнадцяте)
  • 17-те (сімнадцяте)
  • 18-те (вісімнадцяте)
  • 19-те (девʼятнадцяте)

Оскільки днів тижня теж сім, кожен день тижня гарантовано має рівно один надцятий день щомісяця.

Тепер, коли ми розуміємо, що таке надцятий день, ми перевіряємо свій календар. На надцятий четвер у нас нічого не заплановано, тож ми радо підтверджуємо дату партнерові.

Вказівки

Знайдіть точну дату зустрічі, знаючи місяць, рік, день тижня та тиждень.

Є шість значень тижня: first, second, third, fourth, last, teenth.

Наприклад, може знадобитися знайти дату зустрічі на перший понеділок січня 2018 року (1 січня 2018 року).

Так само може знадобитися знайти:

  • третій вівторок серпня 2019 року (20 серпня 2019 року)
  • teenth-середу травня 2020 року (13 травня 2020 року)
  • четверту неділю липня 2021 року (25 липня 2021 року)
  • останній четвер листопада 2022 року (24 листопада 2022 року)
  • teenth-суботу серпня 1953 року (15 серпня 1953 року)

Тиждень teenth

Тиждень teenth означає сім днів у місяці, які закінчуються на «-teenth» (13th, 14th, 15th, 16th, 17th, 18th і 19th).

Якщо треба знайти teenth-суботу серпня 1953 року, подивімося на його календар:

    August 1953
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Звідси бачимо, що teenth-субота припадає на 15 серпня 1953 року.

Subtypes

Ця вправа визначає Subtype під назвою Month для натуральних чисел від 1 до 12. Subtype можна уявити як пару ⟨x, h⟩, де x - значення, а h - доведення його правильності.

Значення всередині Subtype (у цьому випадку x) можна отримати за допомогою .val, наприклад x.val. Його доведення можна отримати за допомогою .property, наприклад x.property. До обох також можна дістатися за допомогою зіставлення зі зразками, як завжди.


Джерело

Джеремі Гайнеґарднер згадав про зустріч у Боулдері, що відбувається на «Wednesteenth» кожного місяця
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Lean Exercism

Час розпочати Зустріч?

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