Size: a a a

Clojure — русскоговорящее сообщество

2021 March 10

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
фе
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
ну так то можно любой код переписать
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
тут скорее вопрос к code style
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
зато разделено принятия рещения на основе длинны списка и его контента
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
у меня просто боль от коллеги, который seq-и на not-empty правит, потому что "новички в кложе не поймут о чём речь" (а документацию им не завезли), хотя новичков в кложе у нас нет уже больше полугода
сколько живу, столько вижу холиваров о пустоте коллекций)
по мне - честно, да используйте (not (empty? ..)), здесь действительно семантика появляется
какой нибудь хаскелл (может быть, я не шарю) может и сам свернул бы все правильно, только кодер бы этого не увидел
а так появляются семантические костыли (иначе никак не назвать), которые плохо ложатся на голову
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Vladimir Pavlyuk
сколько живу, столько вижу холиваров о пустоте коллекций)
по мне - честно, да используйте (not (empty? ..)), здесь действительно семантика появляется
какой нибудь хаскелл (может быть, я не шарю) может и сам свернул бы все правильно, только кодер бы этого не увидел
а так появляются семантические костыли (иначе никак не назвать), которые плохо ложатся на голову
по поводу перфоманса - не думаю, что здесь появились бы проблемы, разве только в случаях больших коллекций, состоящих из коллекций, где этот (not (empty?)) дергался бы миллионы раз
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
про перформанс вообще речи не шло вроде ...
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
а сделать (def not-empty? (comp boolean seq)) в пределах проекта тоже не шибко сложно
источник

IL

Igor Levdansky in Clojure — русскоговорящее сообщество
Для строк лучше использовать str/blank?
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Kirill Chernyshov
про перформанс вообще речи не шло вроде ...
я ж о чем) если нет проблемы с перфомансом, то первоочередная задача - понимание команды.
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Не каждый поймет, что seq - это в конкретнх случаях проверка на пустоту.
Но каждый поймет это с (not empty?)
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
каждый поймет если прочтет документацию )
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
ну согласитесь, что семантика в первую очередь напрашивается из названия
в каком то смысле, имя функции - часть ее документации
уж на что ф-ции, возвращающие bool, просят в кложе заканчивать знаком вопроса)
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
здесь получается кейс, когда документация противоречит названию
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Kirill Chernyshov
каждый поймет если прочтет документацию )
конечно, с этим не спорю)
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Vladimir Pavlyuk
здесь получается кейс, когда документация противоречит названию
документация не противоречит, seq не возврашает boolean
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
ну знак вопроса здесь просто для примера
противоречие в том, что функция, которая используется для возврата новой коллекции, используется для проверки на пустоту
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Vladimir Pavlyuk
ну знак вопроса здесь просто для примера
противоречие в том, что функция, которая используется для возврата новой коллекции, используется для проверки на пустоту
но ведь seq не для возврата новой коллекции а для возврата Sequence или nil, второе как раз и используется как индикатор что входящая коллекция пустая просто потому что в кложе nil это пустая коллекция
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Kirill Chernyshov
но ведь seq не для возврата новой коллекции а для возврата Sequence или nil, второе как раз и используется как индикатор что входящая коллекция пустая просто потому что в кложе nil это пустая коллекция
и получается мешанина - функция делает больше, чем требуется для проверки на пустоту
Sequence - это же коллекция тоже
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
это как использовать экскаватор, чтобы вырыть ямку для цветочка
источник