powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сложные структуры в качестве ключа в set
25 сообщений из 82, страница 2 из 4
Сложные структуры в качестве ключа в set
    #40087798
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все шагают не в ногу, только ведущий профессионал в ногу....
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087799
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно... С каких ЯП приходят все эти грамотеи что JS, и много кто еще, обзываются ими как "недоязыки"?
Или они программки пишут волшебной палочкой, которая может обеспечить мгновенную проверку на "совпадение" сложных элементов языка...
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087806
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Интересно... С каких ЯП приходят все эти грамотеи что JS, и много кто еще, обзываются ими как "недоязыки"?

После плюсов на все смотришь, как на дерьмо. Давно замечено, что сей язык раздувает чсв.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087815
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

особенно для. веба - прям все на сях написано.
надо просто научиться программировать.....
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087821
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
После плюсов на все смотришь, как на дерьмо. Давно замечено, что сей язык раздувает чсв.

Это, видать, так же зависит от самого человека...
Довольно долгое время имел в "напарниках" по разработке спеца в этом (и не только) ЯП. Никакого "раздутия" не наблюдал.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087823
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Программист на фортране может писать на фортране на любом языке!
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087824
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
вадя,

Программист на фортране может писать на фортране на любом языке!
и я могу , без всяких ругательств языка.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087832
crutchmaster
Ведущий профессионал
С объектам Set в этом недоязыке работать не умеет.

С содержимым объектов, профи.
Код: sql
1.
2.
3.
a = {a : 1}
b = {a : 1}
//a и b - два разных объекта с одинаковым содержимым


Впрочем, как другие недоязыки типа жабки или питона.
Ведущий профессионал
(у меня в данных пробелов нет, потому объединение через пробел подходит).

Подходило бы, даже если бы они и были. Главное не обделайся с порядком. Ключи перебираются в том же порядке, каком были добавлены, так что надеяться на него не стоит. Ты же не знаешь, что с ним делали по дороге до тебя.
В других языках я могу переопределить оператор сравнения. И объекты будут сравниваться так, как я хочу, а не так, как хочет язык.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087835
krvsa
Интересно... С каких ЯП приходят все эти грамотеи что JS, и много кто еще, обзываются ими как "недоязыки"?
Или они программки пишут волшебной палочкой, которая может обеспечить мгновенную проверку на "совпадение" сложных элементов языка...
Да, внезапно, в других языках программист может задать свой оператор сравнения.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087836
crutchmaster
krvsa
Интересно... С каких ЯП приходят все эти грамотеи что JS, и много кто еще, обзываются ими как "недоязыки"?

После плюсов на все смотришь, как на дерьмо. Давно замечено, что сей язык раздувает чсв.
В С# эта задача тоже решается элементарно.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087842
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster,
crutchmaster

Во-первых, не на ассемблере, а на плюсах.
Во-вторых, на v8 есть jit компилятор, а не только байткод,

Немного устарелые сведения и недопонимание, как происходит оптимизация (на примере V8)
Встроенные функции сейчас написаны на CSA (CodeStubAssembler) Это некий универсальный ассемблерный язык, позволяющий работать с памятью и объектами JS, который компилируется в ассемблер конкретной машины. От С++ для функций отказались.

Обработка JS программ в V8 происходит следующим образом:
Сначала происходит синтаксический разбор и строится AST (Абстрактное синтаксическое дерево)
Затем интерпретатор Ignition выполняет его, генерует байткод для выполняемых операторов и исполняет его (конечно повторно байткод не генерится) Фактически для каждой функции байткод генерится только в момент ее первого вызова.

Есть оптимизирующий компилятор TurboFan, который может преобразовать байткод в оптимизированный ассемблерный код. Но происходит это далеко не всегда. Сначала для каждой функции собирается статистика ее вызовов. Одно из требований что бы каждый раз функция вызывалась с одинаковыми типами параметров. (Кстати 1 и 1. - это разные типы. {a:1, b:2} и {b:3, a:4} - это разные типы, [1,2,3,4] и [1,2,3.,4] - тоже разные типы) И только после того, как соберется хорошая статистика (а это несколько тысяч вызовов данной функции) принимается решение оптимизировать ее TurboFan
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087847
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ведущий профессионал
krvsa
Интересно... С каких ЯП приходят все эти грамотеи что JS, и много кто еще, обзываются ими как "недоязыки"?
Или они программки пишут волшебной палочкой, которая может обеспечить мгновенную проверку на "совпадение" сложных элементов языка...
Да, внезапно, в других языках программист может задать свой оператор сравнения.

Другие языки сначала долго и нудно компилятся. В других языках компилятор знает, какого типа переменные, что бы подобрать для операции функцию, если она переопределена. В JS в режиме интерпретации байткода придется для каждой операции выяснять нет ли функции, которая переопределяет эту операцию. И все это в режиме выполнения, а не компиляции.
Потом такие умники будут выть, что браузер страшно тормозит, каждый клик обрабатывается по 10 сек. И работать в интернете ваще невозможно, а мобильники разряжаются после просмотра 10 страниц.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087849
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал,

ты как веган, стремишься всех убедить в своем мнении.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087852
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
в других языках программист может задать свой оператор сравнения.

Я рад за тебя.
Но только в JS это вообще не требовалось никогда. Потому этого и нет. Тут достаточно средств для решения проблем.

Я уже писал в другой теме - не стоит тащить за уши приемы одного ЯП в другой. В другом полно своих приемов для решения задач.
Вполне вероятно что ты вообще не правильный подход взял для решения проблемы на JS, пытаешься использовать приемы другого языка.

P.S.
Сравнение с веганом поддерживаю.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087858
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Ведущий профессионал
в других языках программист может задать свой оператор сравнения.

Я рад за тебя.
Но только в JS это вообще не требовалось никогда. Потому этого и нет. Тут достаточно средств для решения проблем.


Ну мне иногда хотелось бы иметь возможность переопределить + для сложения векторов или * и / для умножений делений вектора на число. Да и === для сравнения равенства точек (а == для равенства с некоторой погрешностью).
Мечты... мечты...
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087863
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa , для реализации "желания" не обязательно переделывать "стандартные символы операций", можно написать функцию или метод, который будет возвращать нужный результат.

Т.е. не
Код: javascript
1.
a + b


а
Код: javascript
1.
sum(a, b)
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087864
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
voraa , для реализации "желания" не обязательно переделывать "стандартные символы операций", можно написать функцию или метод, который будет возвращать нужный результат.

Т.е не

Код: javascript
1.
(a+2*(b-c))/4;



A

Код: javascript
1.
div((add(a, mul(sub(b,c),2))), 4);



Ну, что. Красиво. Наглядно, Понятно (Если со скобками не напортачил).

От колбеков в свое время отказались еще и по причине их ненаглядности. Сложности разбираться что там кого за кем вызывает.
Промисы проще и нагляднеею
А async/await еще проще и нагляднее
Ведь по эффективности и возможностям колбеки ничем не уступают.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087865
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa , не обязательно писать все в одну кучу.

Ну и коронный вопрос - вам с шашечками или ехать?
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087868
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
Конечно ехать. (Но иногда надежнее ехать с шашечками).
Просто JS хорош. Но коего чего не хватает. Есть, так сказать, отдельные недостатки.
Его улучшают, как могут. Но не кардинально. Просто синтаксический сахар, чаще всего.
Подавляющее большинство синтаксических конструкций, которые появились за последние годы ничего кардинально нового не ввели.
Начиная с class , кончая последними операторами, типа .? или ?? . Все это было возможно делать и другими средствами. Не так кратко и красиво, но возможно.
Нового, чего раньше не было, и совсем уж проблематично реализовать - Symbol, Генераторы, Приватные поля. Пожалуй больше ничего и в голову не приходит.

Ну согласитесь, что с перегрузкой операторов и защищенными полями JS стал бы гораздо лучше.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087872
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
Ну согласитесь, что с перегрузкой операторов и защищенными полями JS стал бы гораздо лучше.

Какие наши годы! Будет потребность - будут и добавки.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087983
Фотография Имя пользователя1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Ведущий профессионал , вот нашел тебе статейку на тему "сравнения объектов"...
https://codeguru.info/kak-sravnit-obekty-v-javascript/

Там есть разные варианты с примерами.
все эти сравнения развалятся, если в объекте есть симболы, "ромбы" или (особенно) циклы.

по сабжу - либо назначать объектам уникальный id, либо использовать иммутабельность, либо таки да, придумать функцию сериализации в строку.
непонятно, какова задача, какая судьба у объектов и что с ними может происходить.
формулировка в стартовом посте лишена смысла.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40087989
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имя пользователя1
"ромбы" или (особенно) циклы

Покажи примеры этих элементов.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40088004
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
У объектов могут быть методы. Как сравнивать одинаковы ли функции?
Объекты имееют прототип. Одинаковы ли элементы, если они имеют разный прототип?
Те примеры дадут, что
Код: javascript
1.
2.
let a = [0,1,2,3]
let b = {'0':0, '1':1, '2':2, '3':3, length:4}


одинаковые объекты.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40088032
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖС в этом плане действительно отсталый язык. Где нет ни оверлоада функций нормального с типами, ни мульти диспатч, ни екстеншен методов, ни сложных структур данных, ни понимания хеш/еквалити и т.п.

А то что ничего из этого не нужно. Это как зелен виноград. Это все нужные вещи.
...
Рейтинг: 0 / 0
Сложные структуры в качестве ключа в set
    #40088034
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖС это идеи ЛИСП которые за несколько дней превратили во что то типа Java чтобы выглядело привычно и лучше продавалось.

Каким то чудом все это довольно хорошо заработало.

Затем Гугл и другие влили океаны бабла, и превратил это в достаточно хороший язык.

Затем Микрософт добавил ТайпСкрипт и получилось вполне нормально.

Но многие базовые, тривиальные и нужные вещи, просто невозможно добавить не разрушив уже сложившиеся жаваскрипт практики и совместимость. Поэтому даже накачанный до предела баблом и в принципе довольно неплохой язык жаваскрипт так и остается с рядом фундаментальных дефектов.
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 2 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сложные структуры в качестве ключа в set
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]