Size: a a a

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

2020 April 20

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
а если там сет словарей
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
flatten его убъет. исходный вариант норм
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
я бы максимум (let [kx (:k x)] ... вытащил
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Ну-у, чисто теоретически можно преобразовать так:
(let [kx (:k x)]
 ((if (coll? kx) set hash-set) kx))

...но лучше не надо, читается гораздо хуже.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Maxim Penzin
я бы максимум (let [kx (:k x)] ... вытащил
+
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
вот в точности такая же мысль вознилка :)  
насчет ((if coll?) ... )
и что так можно но не нужно
источник

D

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
та просто функу написать!
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
(defn ensure-set [x] (if (coll? x) (set x) #{x}))
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
(ensure-set (:k data))
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Это полезно как учебный пример, как демонстрация first-class-citizen'ности функций, но и демонстрация того, что ею нужно пользоваться осмотрительно :}
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Dos
как можно упростить?

(if (coll? (:k x))
 (set (:k x))
 (hash-set (:k x)))
будет проще, если ты на этом остановишься в процессе упрощения.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Pavel Peganov
Это полезно как учебный пример, как демонстрация first-class-citizen'ности функций, но и демонстрация того, что ею нужно пользоваться осмотрительно :}
Да нормально, только функу надо в let забиндить
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Pavel Peganov
Ну-у, чисто теоретически можно преобразовать так:
(let [kx (:k x)]
 ((if (coll? kx) set hash-set) kx))

...но лучше не надо, читается гораздо хуже.
(let [kx (:k x)
     setize (if (coll? kx) set hash-set)]
 (setize kx))

как-то так
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
(let [kx (:k x)
     setize (if (coll? kx) set hash-set)]
 (setize kx))

как-то так
Да, но мне кажется что если не выносить, получается немного читаемее. Дело вкуса.
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
А можно како-то в безголовом хроме запустить скрипт не используя node.js, пюпитр и т.п?
Т.е. просто chrome script.js
Ну и посмотреть код возврата.
Я не нашел. Может быть действительно невозможно?
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Вряд ли возможно. Это браузер всё-таки. Скорее всего потребуется либо страничка, в которой этот скрипт разместить и открывать уже её; либо, не знаю, расширение?
Но у него такой же JS-движок, как у Node.js, V8. Только API торчат другие.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Кстати, там могут ещё быть приколы с тем, какие API доступны. Хром нынче повадился блокировать некоторые вещи, если скрипт выполняется не в "безопасном окружении" (HTTPS).
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Pavel Peganov
Вряд ли возможно. Это браузер всё-таки. Скорее всего потребуется либо страничка, в которой этот скрипт разместить и открывать уже её; либо, не знаю, расширение?
Но у него такой же JS-движок, как у Node.js, V8. Только API торчат другие.
Просто было бы здорово сделать файлик с тестами с сокрмить его хрому.
Хром нужен из-за dom api. Да можно использовать jsdom.
Не хочется тащить node.js только для того, чтобы он ждал ответа от хрома.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
через etaoin можно, функция (js-execute driver "alert(1)")
источник