The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждено добавление в Python операторов для сопоставления с образцом, opennews (?), 09-Фев-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


28. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (28), 09-Фев-21, 22:25 
А запятые в питоне не в моде что ли? Поясните, почему пайп?
Ответить | Правка | Наверх | Cообщить модератору

33. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (33), 09-Фев-21, 22:33 
Чтобы на bash было похоже конечно же
Ответить | Правка | Наверх | Cообщить модератору

35. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от Аноним (9), 09-Фев-21, 22:39 
Потому что с запятыми получится tuple
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

42. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Онаним (?), 09-Фев-21, 22:52 
tuple - это нормальное состояние во время разработки данного синтаксиса.
Ответить | Правка | Наверх | Cообщить модератору

45. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 09-Фев-21, 23:13 
ну, с палками же не получается побитовое "или"... почему с запятыми должен получиться тупл?! ты хоть глянь, что в питоне палка означает.
Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

81. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от Аноним (9), 10-Фев-21, 03:33 
И что она там означает?

>>> class myint(int):

        def __or__(self,other): return 42
>>> myint(10)|myint(20)

42

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

128. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 09:49 
Покажи, что там и как перегрузили в case... И не пиши 100 раз одну и ту же чушь.
Ответить | Правка | Наверх | Cообщить модератору

131. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Сишник (?), 10-Фев-21, 09:53 
> И что она там означает?
> __o__

фу такое писать

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

222. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 15:40 
это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__ ___подчёркиваний___, чтобы без линейки не прочитать код.
Ответить | Правка | Наверх | Cообщить модератору

231. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (242), 10-Фев-21, 16:15 
Это приватные методы.
Ответить | Правка | Наверх | Cообщить модератору

282. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 11-Фев-21, 00:30 
Конечно приватные, без цензуры такое вообще нельзя показывать: __o__
Ответить | Правка | Наверх | Cообщить модератору

234. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (-), 10-Фев-21, 16:54 
> это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__ ___подчёркиваний___, чтобы без линейки не прочитать код.

#define __alias(symbol)                 __attribute__((__alias__(#symbol)))
...
# define __compiletime_error(message) __attribute__((error(message)))
..
struct uhid_create2_req {
    __u8 name[128];
    __u8 phys[64];
    __u8 uniq[64];
    __u16 rd_size;
    __u16 bus;
    __u32 vendor;
    __u32 product;
    __u32 version;
    __u32 country;
    __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE];
} __attribute__((__packed__));

Ох уж эти опеннетные "списалисты" по всему на свете ...
Ответить | Правка | К родителю #222 | Наверх | Cообщить модератору

284. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от Аноним (15), 11-Фев-21, 00:33 
> "списалисты"

Ты же поди в курсе, что значит "питон" в название питона? Списалисты списали много у кого и пихтнули в пихтон.

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

290. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (-), 11-Фев-21, 01:30 
>> "списалисты"
> Ты же поди в курсе, что значит "питон" в название питона? Списалисты
> списали много у кого и пихтнули в пихтон.

Как ты ловко, прям в прыжке, переобулся!

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

326. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от Аноним (326), 14-Фев-21, 07:22 
> это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__
> ___подчёркиваний___, чтобы без линейки не прочитать код.

Это они где-то прочитали что в C идентификаторы с _ и тем более __ - системные, reserved, не используйте. Максимализм взнегодовал и стали __назло_бабушке__ _отмораживать_ ___уши___.

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

334. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от OzWMTjhctYyY0jBcJyMQ (?), 14-Фев-21, 18:37 
c sdl посмотри для просветления ну и керрегана почитай
Ответить | Правка | К родителю #222 | Наверх | Cообщить модератору

41. "Утверждено добавление в Python операторов для сопоставления ..."  +2 +/
Сообщение от Онаним (?), 09-Фев-21, 22:51 
Потому что без хорошего раскура пайпа такой синтаксис не лепится.
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

72. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Zulu (?), 10-Фев-21, 01:42 
Видимо чтоб избежать неоднозначностей с
match a,b:
  case 1,2:
    pass
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

130. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 09:51 
Это <белый лис>, товарищи... Язык (нет, даже не язык уже... что-то непотребное) скатывается в какой-то брейнфак, где без компиляции пары экранов невозможно понять назначение видимого.
Ответить | Правка | Наверх | Cообщить модератору

80. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 02:24 
Пайп логичен. Он читается программистом как "или".
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

107. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от n00by (ok), 10-Фев-21, 08:47 
Потому программисты и пишут:

match x with
| 401 | 403 | 404 -> ...
| _ -> ...

https://www.opennet.ru/openforum/vsluhforumID3/123233.html#43

Осталось понять, зачем тут case.

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

117. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (160), 10-Фев-21, 09:32 
Это поколение "программистов" спрашивать не буду. Они в руках словаря не держали, пользовались для перевода интернетом, нужные ассоциации в мозгах не образуются. А ваше мнение мне интересно.

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

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

142. "Утверждено добавление в 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ообщить модератору

164. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (160), 10-Фев-21, 11:08 
Вы меня не поняли совсем.

1. Не надо в Python тянуть конструкции с других языков, потому что новый программист не умеет писать код на Python!

2. Я уважаю старшее поколение, которое создало некоторые замечательные языки, Python включительно.

3. Не уважаю хипстерское быдло, которое вместо обучению языку, хочет БЫСТРО навалять быдлокод. Но неможет, ибо не знает особенностей языка! И чтобы это быдло могло навалять свой быдлокод, какой-то там управляющий совет, херит язык. Насмерть херит! Насовсем херит!!!

https://www.opennet.ru/openforum/vsluhforumID3/123233.html#160

Это очень плохо что даже у вас нет ассоциации оператора выбора с типом словарь. У языке python оператор case заменен на поддержку типа словарь. Это только на первый взгляд странно. Замена case на поддержку работы с типом словарь единственно правильный путь: https://www.askpython.com/python/python-switch-case-implemen...
Именно в словаре, по ключевому слову, ищем его перевод или значение - это и есть операция выбора! Поддержка типа json в Python делает оператор case ненужным!

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

169. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 11:35 
> Это очень плохо что даже у вас нет ассоциации оператора выбора с типом словарь. У языке python оператор case заменен на поддержку типа словарь.

И чё?

Во-первых, какое мне дело, до этих особенностей python'а? Это относится к тем нюансам языка, которые подхватываешь в первые два дня работы с ним, и забываешь через месяц после того, как закончил с ним работать. Python весь состоит из таких нюансов, в том смысле, что в нём нет ничего исконно своего, каких-нибудь интересных фичей, которые полезно помнить всегда, в том числе когда работаешь и с другим языком.

Во-вторых, здесь речь идёт о паттерн-матчинге, а не об операторе выбора. Оператор выбора -- это из языков a la Algol, Pascal, C и тп, и по сути он лишь высокоуровневый способ написать низкоуровневую табличку переходов, откуда по индексу можно извлечь адрес для jmp. Потом, некоторые языки, расширили это до возможности работы с типами навроде строки, для которых jmp table не очень удачна, и начали использовать ассоциативные массивы. python пошёл дальше, и выкинул вообще switch в пользу ассоциативных массивов. Сейчас мы видим, что решение оказалось удачным, потому как когда речь зашла про паттерн-матчинг, не пришлось в язык добавлять match, который очень похож на switch, но возможностей больше. Ортогональность языка соблюдается.

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

174. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (160), 10-Фев-21, 11:57 
Операторы match и case для python не нужны и ОЧЕНЬ вредны: https://www.askpython.com/python/python-switch-case-implemen...
Ответить | Правка | Наверх | Cообщить модератору

192. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 12:59 
И что? Во-первых, там написано про оператор выбора, а не про паттернг-матчинг, во-вторых: и что?
Ответить | Правка | Наверх | Cообщить модератору

165. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (160), 10-Фев-21, 11:09 
PS: передавайте всем лисперам, что их Lisp - говно, как и JIT.
Ответить | Правка | К родителю #142 | Наверх | Cообщить модератору

170. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 11:35 
Я конечно передам, но, боюсь, им не интересно твоё мнение.
Ответить | Правка | Наверх | Cообщить модератору

172. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (160), 10-Фев-21, 11:47 
Мне не интересно их мнение. Передай факт: лисп требует выделение оперативной памяти в режиме WX, а это осень плохо. Именно по этому у меня нет прог на лиспе, а так функциональный язык интересен.
Ответить | Правка | Наверх | Cообщить модератору

194. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 13:02 
> Передай факт: лисп требует выделение оперативной памяти в режиме WX, а это осень плохо.

Что за режим WX? Это как-то связано с wxWidgets?

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

208. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от PnD (??), 10-Фев-21, 14:50 
(Голосом старого глухого мафиози из "Пса-призрака"):
— Он сказал W^X ("write xor execute").
Ну то есть вообще-то ровно наоборот. Но не ровно, потому что отрицание не превратит XOR в конъюнкцию. (Выдохнул)

Короче, оно хочет и писа́ть и исполнять в одном месте, а "правильный" софт так хотеть не должен. (Но где ж ты такой софт возьмёшь.)

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

229. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 10-Фев-21, 16:13 
> Короче, оно хочет и писа́ть и исполнять в одном месте, а "правильный"
> софт так хотеть не должен. (Но где ж ты такой софт
> возьмёшь.)

Глупости. Lisp'у WX не поможет. Lisp не различает данные и код на гораздо более глубоком уровне, чем это делает фон Нейман. Это основная фишка языка.

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

327. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (326), 14-Фев-21, 07:24 
> фишка языка.

А эта фишка не становится багом при untrusted input? А то вон в bitmessage автырь эту "фичу" влепил, так там всех кулхацкеров через фичу и поимели.

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

333. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Ordu (ok), 14-Фев-21, 08:39 
>> фишка языка.
> А эта фишка не становится багом при untrusted input?

В смысле? Если ты сделаешь (eval (read my-line-buffered-socket))? Да, это может вести к уязвимости. Ты можешь глянуть на практически любой лисповый проект и найти, как тот читает внешние файлы и исполняет из них код. Но... это lisp. И нельзя сказать, чтобы это было бы уникальным для него, то же самое можно найти в js, bash, python... практически в любом скриптовом языке. В компилируемых как правило сложнее, потому что они не имеют компилятора в рантайме и выполнять могут только уже скомпилированный код. Но рантайм лиспа содержит и парсер лиспа и компилятор лиспа, так что тут всё ок.

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

320. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (320), 12-Фев-21, 03:02 
Для возможности писать так Point(1|0,1|0).
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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