Size: a a a

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

2020 March 14

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Это не код, а скорее "образ мысли", рабочий код у меня  на композиции, но вопрос в другом.

В Haskell  я бы написал что-то вроде того:
f (x,[y, z]) = z
map f [(1,["key","ya.ru"]),(2,["no","no"]),(3,["bar","bar"])] получив бы в итоге ["ya.ru", "no", "bar"]

Вопрос скорее был, как мне использовать деструктуризацию в Clojure, если я знаю, что структура данных, используемая в качестве аргумента функции представляет собой повторяющийся паттерн, в данном случае (Int, {:keyword "string"})  .
а так абсолютно то же самое 😊
  (defn f [[_ [_ z]]] z)
 (map f [[1 [:site "ya.ru"]] [2 [:site "no"]] [3 [:site "bar"]]])

=> ("ya.ru" "no" "bar")
источник

E

ETL in Clojure — русскоговорящее сообщество
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Это не код, а скорее "образ мысли", рабочий код у меня  на композиции, но вопрос в другом.

В Haskell  я бы написал что-то вроде того:
f (x,[y, z]) = z
map f [(1,["key","ya.ru"]),(2,["no","no"]),(3,["bar","bar"])] получив бы в итоге ["ya.ru", "no", "bar"]

Вопрос скорее был, как мне использовать деструктуризацию в Clojure, если я знаю, что структура данных, используемая в качестве аргумента функции представляет собой повторяющийся паттерн, в данном случае (Int, {:keyword "string"})  .
и (Int, {:keyword "string"}) не то же самое, что {Int, {:keyword "string"}}
источник

E

ETL in Clojure — русскоговорящее сообщество
Sergey Trofimov
а так абсолютно то же самое 😊
  (defn f [[_ [_ z]]] z)
 (map f [[1 [:site "ya.ru"]] [2 [:site "no"]] [3 [:site "bar"]]])

=> ("ya.ru" "no" "bar")
{Int, {:keyword "string"}} - имел в виду это )
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну как бы двумерная мапа не равна одномерному туплу
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
и поскольку мапа не имеет порядка, то для неё нет nth
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Привет. Новости по проеку книги App from scratch
https://t.me/app_from_scratch/479
Telegram
Mikhail Kuzmin in App From Scratch
Привет.
Работа над новой версией проекта потихоньку движется.
Что получается можно посмотреть в ветке 3.1 https://github.com/darkleaf/publicator/tree/3.1

В книжке модели описываются хэшмапами и валидируются с помощью clojure.spec.
spec так и не зарелизили,  да и как оказалось он не про валидацию сущностей.

В новой версии модели разбиты на агрегаты и каждый агрегат хранится в datascript.
https://github.com/darkleaf/publicator/blob/3.1/src/publicator/core/domain/aggregates/publication.cljc
Валидация разбита на 2 части: валидация атрибутов и валидация агрегата целиком.
Атрибуту можно задать предикат и флаг уникальности, а у агрегата проверить обязательные поля.
По аналогии с тем как это будет сделано в clojure.spec2 - schema/select.
Это позволяет легко делать производные формы-модели в которых нет каких-то атрибутов или наоборот есть дополнительные.

В книге так же есть проблемы с внедрением зависимостей и тестированием.
Сейчас use-cases используют эффекты и тестируются сценариями.
https://github.com/darkleaf/…
источник
2020 March 15

Д

Диёр in Clojure — русскоговорящее сообщество
Подскажите насчёт cursive, пожалуйста. Могут быть какие-то причины по которой в repl автодополнение по неймспейсам не работает? При редактировании файлов работает
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Идея не проиндексировала бывает
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Там есть опция ресет кеш и рестарт
источник

Д

Диёр in Clojure — русскоговорящее сообщество
Kostyantin Randomname
Там есть опция ресет кеш и рестарт
К сожалению не помогло. Попробовал ещё пару проектов создать через lein new app и через cursive, но отличий нет.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Диёр
Подскажите насчёт cursive, пожалуйста. Могут быть какие-то причины по которой в repl автодополнение по неймспейсам не работает? При редактировании файлов работает
скриншот?
источник

Д

Диёр in Clojure — русскоговорящее сообщество
Sergey Trofimov
скриншот?
источник

Д

Диёр in Clojure — русскоговорящее сообщество
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
и репл запущен после того, как project.clj записаны зависимости?
и сейчас там чешир имеется?
источник

Д

Диёр in Clojure — русскоговорящее сообщество
всё так
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
если что, у меня работает, хотя я таким и не пользуюсь почти
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
не воспроизводится
всё работает
ну и версия кложи у меня 1.10.1
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
иди терзай Колина в слаке 😊
источник

Д

Диёр in Clojure — русскоговорящее сообщество
что самое тупое вчера работало
источник