Size: a a a

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

2019 September 09

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
ну и да, почему нельзя было просто сделать метод .len()?
Не знаю, меня больше вымораживало почему нельзя было сделать return self в реализации метода append в списке из-за чего его нельзя применять в редьюсе нормально
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Mike Bohdan
Не знаю, меня больше вымораживало почему нельзя было сделать return self в реализации метода append в списке из-за чего его нельзя применять в редьюсе нормально
лямбды однострочные…
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
После лиспов ещё очень удивляет чего в динамических языках даже кор библиотеки с нулл работать не умеют и каждый раз это как конец света
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
От слов magic method пахнет php
Ну, то есть __call() и __invoke(), как же забыть
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
И __get() / __set()
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
лямбды однострочные…
Это тоже нормально: хочешь получить вменяемый код от разработчика, ограничьте его в возможностях самовыражения в коде. Стайлгайды, линтеры и прочее как раз про это.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Mike Bohdan
Это тоже нормально: хочешь получить вменяемый код от разработчика, ограничьте его в возможностях самовыражения в коде. Стайлгайды, линтеры и прочее как раз про это.
Да, но это перебор
источник

GG

Grigory Glushko in Clojure — русскоговорящее сообщество
elendili
Подскажите новичку, пожалуйста, как идиоматичнее отфильтровать коллекцию на основе информации о соседних элементах.
Задача: удалить элементы не стоящие по возрастанию (сортировка по Сталину). Мне удалось добиться через reduce, что как бы не очень, имхо...

(defn stalin-sort [inp]
  (reduce #(if (>= %2 (or (last %1) %2)) (conj %1 %2) %1 ) [] inp))
Для фильтрации "на основе информации о соседних элементах" стоит посмотреть на функции partition и partition-all.
Но, к сожалению, к данной задаче они не подойдут, т.к. тут нужно фильтровать на основе информации не о соседних элементах, а о последнем элементе, который был добавлен в результирующую коллекцию (он может быть и не соседним - 100 1 2 3 4 5 ... 99 - весь хвост меньше 100, но 100 не соседний элемент для 99). Так что reduce норм вариант.
источник
2019 September 10

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
> Second, I had previously worked on the ABC project, which had developed a programming language intended for non-technical users.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
суть питона
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
источник

DA

Daniil Arsentiev in Clojure — русскоговорящее сообщество
Mike Bohdan
После лиспов ещё очень удивляет чего в динамических языках даже кор библиотеки с нулл работать не умеют и каждый раз это как конец света
Жизнь - боль. Ко мне попала куча кода с плясками во круг нон в развесистых коллекциях 😭
Смотрю на этот код и думаю как его отрефакторить на кложе. Потом вспоминаю что это питон и грусти моей нет предела
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
Mike Bohdan
После лиспов ещё очень удивляет чего в динамических языках даже кор библиотеки с нулл работать не умеют и каждый раз это как конец света
А вот Питончик, например, мне кажется достаточно хорошо работает с None
источник

DA

Daniil Arsentiev in Clojure — русскоговорящее сообщество
Vladimir Legkunets
А вот Питончик, например, мне кажется достаточно хорошо работает с None
Пруфы в студию. У меня обратное мнение
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
ну, например, в питоне if collection вернет False даже если коллеция просто пустая. Не нужно городить никаких count, empty?
Первое что приходит в голову
источник

DA

Daniil Arsentiev in Clojure — русскоговорящее сообщество
Первое что приходит в голову у меня это эксепшен при доступе к не существующему элементу коллекции. Хочу get-in
Хоть прям toolz в проект тащи
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
а так да - в питоне раздражает отсутствие всяких базовых функций из коробки, типа partition, даже map нельзя без require сделать
источник

DA

Daniil Arsentiev in Clojure — русскоговорящее сообщество
Есть генераторы списков. А кор утилс очень не хватает.
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
list comprehension - да
источник

DA

Daniil Arsentiev in Clojure — русскоговорящее сообщество
Второй камень в огород питона - возможность мутировать данные по месту. Имеем функцию с десятикратным и более вложением где на любом из уровней мы мутируем данные. Или процедуры...
Это к разговору об имутабельности
источник