Size: a a a

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

2019 December 19

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Это примерно как в сишке при дебаге по брейкпоинтам компилятор генерит дебажную сборку без оптимизаций, чтобы в любом месте остался тот кусок кода, который написан, и стоящие за ним асм-инструкции, а в релиз сборке все это совсем не так. А в Кложе - сразу не так, как при попытке дебажить релиз-сборку по исходникам
источник

A

Alexander in Clojure — русскоговорящее сообщество
Andrey Ivanov
не знаю насчет других дебаггеров, но когда я написал свой и попользовался им, я понял, что в Кложе дебажить пошагово нетривиально. И не потому что ФП, Кложа как раз наглухо императивный язык, а потому что то, что вы видите в коде, и во что это разворачивается на этапе макроэкспандинга, просто небо и земля.
Как тогда выглядит ФП?
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Без императивности и пошаговости выполнения инструкций. Как Хаскель, например.
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Фшарп, Скала и прочее кстати туда же, к императивщине. И это по-своему хорошо
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Иначе бы интероп с Джавой, НЕТом или Джаваскриптом из этих языков был бы сущий геморрой, да и писать на них было бы на порядок сложнее
источник

A

Alexander in Clojure — русскоговорящее сообщество
Но разве шаги не есть всегда? Одни функции выполняются чтобы вернуть аргументы для других
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
шаги через композицию функций и через инструкции - 2 большие разницы. в ФП нет инструкций.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Да, в кложе хотя бы принтами можно отдебажиться, а вот в хаскелле уже нет. :)
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Ага. Точнее, можно накидать дебаг-принтов, но порядок их вывода редко будет такой, как предполагает автор кода )
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Но, как мы знаем, там не надо дебажить - там если компилируется, то работает )))))
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
(не факт, что правильно, но это уже детали)
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Дьявол в деталях. :)
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Alexander
В корзинах с колизиями тримап?
Вроде когда в корзине больше 4 элементов она превращается в тримап (если ключ Comparable)
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
In a way, Clojure is very dumb.
😂
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
это из braveclojure если что)
источник
2019 December 20

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Кто-нибудь кложаскриптовые либы оформлял отдельными модулями для подключения в депсах? Можете подсказать пару моментов?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Каких конкретно?
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Да хотел вынести в либу свои часто используемые нэймспейсы, и думал как это организовать - полноценным проектом со своими зависимостями (для разработки и тестов, тогда и фигвилл туда же все еще 100всего) или просто иерархией папок с cljs файлами, тогда легче зависимость, нет транзитивных конфликтов и вообще аккуратнее - но непонятно как ее тогда разрабатывать дальше ) В итоге выбрал второй вариант но языконезависимый - вместо депенденсей подключаю просто как файлы через гит-сабмодуль
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
И все вопросы по доработке сразу снялись - поскольку это сабмодуль, его можно править и пушить из любого содержащего его проекта
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Да лучше профилями, наверное.
источник