Size: a a a

2020 May 19

LL

Lama Lover in pro.elixir
Евгений
кек, то говорят if говно, то наоборот :)
Ну, if внутри вроде ставит флажочек оптимизации условия
источник

Е

Евгений in pro.elixir
Anastasiya Dyachenko
про if говно было обсуждение упортых требований
лично я использую то что меньше строк занимает :) иногда if иногда case
источник

AD

Anastasiya Dyachenko in pro.elixir
для true/false  все-таки лучше if, да и по твоей логике он в любом случае занимает меньше строк
источник

AD

Anastasiya Dyachenko in pro.elixir
хотя про строки тоже так себе ориентир
источник

AD

Anastasiya Dyachenko in pro.elixir
читаемость важнее
источник

Е

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

AD

Anastasiya Dyachenko in pro.elixir
смотри, когда видишь if то сразу понятно что проверка идет на true или false, когда видишь case то результаты могут быть разными - поэтому if понятнее
источник

Е

Евгений in pro.elixir
Lama Lover
Так а кто знает что эта либа работает только с линейно-упорядычевающими компараторами?
Типа деревья строятся не только на бесклассово-упорядоченных множествах

Я бы предоставил апи для компараторов типа :lt, :eq, :gt как в DateTime.compare
ну наверное в доке надо писать, или что ты предлагаешь?
источник

LL

Lama Lover in pro.elixir
Евгений
ну наверное в доке надо писать, или что ты предлагаешь?
Я же написал что я предлагаю
источник

Е

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

Е

Евгений in pro.elixir
Lama Lover
Я же написал что я предлагаю
но это не меняет требований к линейной упорядоченности
источник

Е

Евгений in pro.elixir
:eq просто не нужен
источник

LL

Lama Lover in pro.elixir
Евгений
но это не меняет требований к линейной упорядоченности
Я сейчас подумаю и приведу пример
источник

Е

Евгений in pro.elixir
Lama Lover
Я сейчас подумаю и приведу пример
я просто пришел из плюсов и D там именно такие компараторы
источник

LL

Lama Lover in pro.elixir
Евгений
я просто пришел из плюсов и D там именно такие компараторы
Неправда, тот же strcmp
источник

AD

Anastasiya Dyachenko in pro.elixir
Евгений
:eq просто не нужен
если я правильно понимаю, то в случае :lt/:gt/:eq и код будет работать быстрее, потому что хватит одной проверки, вместо двух как тут https://github.com/japplegame/avl_tree/blob/5e660f37684b57bb0524103e8708b95509dde45b/lib/avl_tree/node.ex#L17
источник

LL

Lama Lover in pro.elixir
Во-вторых, интерфейс который я предложил будет работать быстрее, потому что вместо двух сравнений в худшем случае будет одна
источник

Е

Евгений in pro.elixir
в strcmp нет никаких компараторов и это не имеет никакого отношения к бинарным днревьям и сортировке вообще
источник

Е

Евгений in pro.elixir
Lama Lover
Во-вторых, интерфейс который я предложил будет работать быстрее, потому что вместо двух сравнений в худшем случае будет одна
это спорно, проверка перенесется в сам компаратор
источник

LL

Lama Lover in pro.elixir
Евгений
это спорно, проверка перенесется в сам компаратор
Неправда, например лексикографическое сравнение списков
Худший случай в моём варианте - пройти список один раз
Худший случай в твоём - пройти список два раза
источник