Open DanikVitek opened 1 year ago
Хороша ідея. Над синтаксисом треба ще добре попрацювати. А для ключового слова як варіант можна спробувати "перевірити".
До речі, вже є можливість деструкції обʼєктів, списків і словників:
(вік) = отримати_студента("Тарас")
[а, б] = [1, 2, 3]
(баг) = (баг="вада", лайк="вподобайка")
Правда поки лише в парсері, на днях буде втілено у мові.
UPD: "перевірити" непогано, але треба щось таке, щоб читалось нормально. Типу "перевірити чи" і тд, але одним словом. Впринципі, як варіант "коли".
щось = ...
коли щось
є Людина(імʼя, вік=13)
друк("людина", імʼя, вік)
кінець
є Гриб()
друк("гриб")
кінець
є інше
впасти "допускаються лише люди і гриби!"
кінець
кінець
Скорочено:
коли щось
є Людина(імʼя, вік=13): друк("людина", імʼя, вік)
є Людина(імʼя, вік) та вік не менше 18: друк("доросла людина", імʼя, вік)
є Гриб(): друк("гриб")
є інше: впасти "допускаються лише люди і гриби!"
кінець
Загалом, це виглядає дійсно круто, але треба більш детально описати що і як воно може "матчити". Тобто синтаксис паттернів і поведінку в різних ситуаціях. Бо, здається, це досить комплексна штука.
Проблема
Варто мати таку зручну конструкцію, як pattern matching. Бо при його використанні можна швидко отримати потрібні поля структури як окремі змінні та відсіяти непотрібні. Пропоную наступний синтаксис:
Також зручною буде конструкція
match
. Варто подумати над перекладом ключового слова.