Size: a a a

2020 May 19

Е

Евгений in pro.elixir
Anastasiya Dyachenko
я в твоем коде вижу разницу только в кейсах когда будет два когда одно сравнение, если не знаем какие кейсы будут чаще - разницы нет
да, ты таки права, но там не всегда две проверки, put_lower/upper, например, только одна проверка
https://github.com/japplegame/avl_tree/blob/5e660f37684b57bb0524103e8708b95509dde45b/lib/avl_tree/node.ex#L49
источник

Е

Евгений in pro.elixir
не всегда нужен :eq, скажем так
источник

AD

Anastasiya Dyachenko in pro.elixir
да тогда твой способ лучше 👍
источник

AD

Anastasiya Dyachenko in pro.elixir
я думаю Георгий имел в виду что было бы здорово поддержать и сравнения с :eq как минимум для типов, для которых булевого сравнения нет (например Date), но это же просто любительская либа, так что это все на твое усмотрение
источник

Е

Евгений in pro.elixir
спасибо за интересное обсуждение самой имплементации, по стилю замечания приму к сведению. Что насчет совсем страшного говна в коде? Я не безнадежен?
источник

Е

Евгений in pro.elixir
Anastasiya Dyachenko
я думаю Георгий имел в виду что было бы здорово поддержать и сравнения с :eq как минимум для типов, для которых булевого сравнения нет (например Date), но это же просто любительская либа, так что это все на твое усмотрение
Георгий, возможно, прав. Я склонен полагать, что нужно делать так, как общепринято в конкретном языке. Если в эликсире принято, что компараторы, должны возвращать :eq, :lt и :gt, то так и надо делать.
источник

AD

Anastasiya Dyachenko in pro.elixir
Евгений
спасибо за интересное обсуждение самой имплементации, по стилю замечания приму к сведению. Что насчет совсем страшного говна в коде? Я не безнадежен?
да норм, ты молодец
источник

PG

Pig Greenest in pro.elixir
Евгений
Георгий, возможно, прав. Я склонен полагать, что нужно делать так, как общепринято в конкретном языке. Если в эликсире принято, что компараторы, должны возвращать :eq, :lt и :gt, то так и надо делать.
компараторы возвращают bool или int только в стремных языках типа C++
источник

Е

Евгений in pro.elixir
Anastasiya Dyachenko
да норм, ты молодец
спасибо, правда это дерево мало кому нужно. я писал для тренировки и потому что нужна была реализация дерева со своим компаратором.
источник

Е

Евгений in pro.elixir
ну AVL выбрал, потому что его легче всего имплементировать :)))
источник

Е

Евгений in pro.elixir
Pig Greenest
компараторы возвращают bool или int только в стремных языках типа C++
в этих стремных языках вообще нет никаких стандартов на компараторы. :) А в эликсире есть? я пока видел только один компаратор - DateTime.compare
источник

Е

Евгений in pro.elixir
Почему в нестремном эликсире в стандартной либе до сих пор нет протокола Comparable?
какое-то упущение, я считаю
источник

PG

Pig Greenest in pro.elixir
потому что в эрланге/эликсире всё и так можно сравнивать
источник

Е

Евгений in pro.elixir
Pig Greenest
потому что в эрланге/эликсире всё и так можно сравнивать
мапы нельзя, результат непредсказуем
источник

PG

Pig Greenest in pro.elixir
но тут возникают проблемы со структурами, которые решаются написанием compare
источник

PG

Pig Greenest in pro.elixir
Евгений
мапы нельзя, результат непредсказуем
вообще предсказуем, но малополезен
источник

AD

Anastasiya Dyachenko in pro.elixir
я когда-то копалась в ядре в попытках сделать протокол с имплементацией > < и тд, короче не вышло ничего :D
источник

Е

Евгений in pro.elixir
Pig Greenest
вообще предсказуем, но малополезен
да ты прав, в эрланге наверное вообще бессмысленно, а в эликсире с его структурами уже есть смысл в протоколе
источник

AM

Aliaksandr Martsinov... in pro.elixir
Мне кажется было где-то обсуждение
источник

Е

Евгений in pro.elixir
хреново, что нельзя сматчить туплу произвольной длины, например по первому полю.
источник