The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Утверждено добавление в Python операторов для сопоставления с образцом"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Утверждено добавление в Python операторов для сопоставления ..." +/
Сообщение от Ordu (ok), 10-Фев-21, 10:12 
> Это поколение "программистов" спрашивать не буду.

В смысле тебе поколение хипстеров ближе? Я тоже очень не люблю старпёров, но как говаривал Юдковский: если самый тупой человек на свете говорит, что небо голубое, это не значит, что оно зелёное.

Пайп как "или" используется, как минимум со времён C... Хотя не, в BNF ведь | используется, а это вообще середина XX века ещё. Отказываться от этого я не вижу никакого смысла, это уже будет негативизмом, в смысле позицией "назло мамке в лужу сяду".

> Есть ли у вас ассоциация оператора выбора с выбором в словаре? И
> есть ли ассоциация возможности реализации выбора с помощью типа данных словарь?

Нет и нет. Паттерн-матчинг -- это древняя техника, с которой я например ознакомился где-то в 90-х читая учебник по лиспу (примерно 80-го года издания), где в качестве примера программы реализовывался паттерн матчинг для создания чего-то там. Может быть чат-бота по типу Elisa. Паттерн матчинг несводим к ассоциативному массиву, хотя ассоциативный массив иногда можно использовать для более эффективной реализации. Но это проблемы компилятора, будет ли он использовать ассоциативный массив, просто jmp table, последовательность cmp/je, или что. Хороший компилятор лучше меня должен знать, как данный случай на данной платформе сделать быстрее.

Но дело не в скорости, глянь на примеры в тексте статьи, они немного приоткрывают возможности. Возьми тот пример с функцией whereis, и попробуй переписать это без match, и сравни количество затраченных усилий и читаемость результата.

В целом я рад, что паттерн-матчинг стал must have фичой языков. И дело даже не в том, что когда его нет, а он нужен, начинаешь мухой на стекле выёживаться, лишь бы не писать ad hoc реализацию, а в том, что он реально удобен и может превратить безумное нагромождение if/else в несколько уровней вложенности в няшную и понятную структуру кода, которая хорошо отражает программерскую мысль, и легко при этом компилятором преобразуется в эффективный машинный код.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Утверждено добавление в Python операторов для сопоставления с образцом, opennews, 09-Фев-21, 21:22  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру