Size: a a a

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

2020 March 14

ИР

Иван Романов in Clojure — русскоговорящее сообщество
Эмоции в программистких чатиках это что-то с чем то...особенно в хаскель(не зем)ном)
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Andrey Ivanov
(я не беру всякую экзотику типа  АПЛ и Фортов)
В форте тоже есть циклы и условия. 😁
источник

AK

Andrew Kravchuk in Clojure — русскоговорящее сообщество
(извините)
источник

AK

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

E

ETL in Clojure — русскоговорящее сообщество
Джентельмены, есть вопрос. Есть вектор ассоциативных массивов следующего вида [ {1 JSON} { 2 JSON} ... ], при помощи функции parse-string этот JSON превращается в {:key "string"}, в итоге мы имеем [{1 {:key "string"} }  {2 {:key "string"}} ]. Вопрос:  как применить filter #(= % x) исключительно по значениям "string" во всем векторе? Я начал мыслить в сторону деструктуризации, но не понимаю как впихнуть деструктуризацию как функцию для reduce.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
ETL
Джентельмены, есть вопрос. Есть вектор ассоциативных массивов следующего вида [ {1 JSON} { 2 JSON} ... ], при помощи функции parse-string этот JSON превращается в {:key "string"}, в итоге мы имеем [{1 {:key "string"} }  {2 {:key "string"}} ]. Вопрос:  как применить filter #(= % x) исключительно по значениям "string" во всем векторе? Я начал мыслить в сторону деструктуризации, но не понимаю как впихнуть деструктуризацию как функцию для reduce.
если в лоб, то

(def v1 [{1 {:key "string"}} {2 {:key "string"}}])
(filter (fn [n]  (= "string" (-> n first val first val))) v1)
источник

E

ETL in Clojure — русскоговорящее сообщество
Mike Ananev
если в лоб, то

(def v1 [{1 {:key "string"}} {2 {:key "string"}}])
(filter (fn [n]  (= "string" (-> n first val first val))) v1)
В лоб я уже сам примерно такое написал )))  А можно как-то откорректировать вот это:

        (map #(let [{_ {_ x}} %] x) [{1 {:site"yandex.ru"}} {2 {:site "pornhub.com"}} ])
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
еще вариант:
(filter #(= "string" (-> % first val :key)) v1)
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Я так пишу:
(filter (comp #{"string"} :key val first) v1)
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Я так пишу:
(filter (comp #{"string"} :key val first) v1)
во, тож хотел так написать
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Я так пишу:
(filter (comp #{"string"} :key val first) v1)
👍
источник

E

ETL in Clojure — русскоговорящее сообщество
Спасибо) буду пробовать дальше бить шишки и сделать это через деструктуризацию через let ))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Спасибо) буду пробовать дальше бить шишки и сделать это через деструктуризацию через let ))
А чем не устраивает вариант выше?
источник

E

ETL in Clojure — русскоговорящее сообщество
Устраивает, он работает, но я примерно такой вариант сам написал - а теперь хочу голову поломать немного ))))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
В лоб я уже сам примерно такое написал )))  А можно как-то откорректировать вот это:

        (map #(let [{_ {_ x}} %] x) [{1 {:site"yandex.ru"}} {2 {:site "pornhub.com"}} ])
нерабочий код какой-то
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ETL
Джентельмены, есть вопрос. Есть вектор ассоциативных массивов следующего вида [ {1 JSON} { 2 JSON} ... ], при помощи функции parse-string этот JSON превращается в {:key "string"}, в итоге мы имеем [{1 {:key "string"} }  {2 {:key "string"}} ]. Вопрос:  как применить filter #(= % x) исключительно по значениям "string" во всем векторе? Я начал мыслить в сторону деструктуризации, но не понимаю как впихнуть деструктуризацию как функцию для reduce.
вообще, если хочется потренироваться по чему-то такому странному, то рекомендую посмотреть medley - там хороший набор полезных функций.
источник

E

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

E

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

В 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"})  .
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
у тебя keyword динамический, деструктуризация в такое не умеет
источник

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"})  .
но при этом вместо ["key","ya.ru"] ты хочешь подсовывать мапу?
это как бы не эквивалентно 😊
источник