Size: a a a

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

2020 April 21

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
Sergey Trofimov
"2020-02-29" 😊
ну да)
источник

S

Special K in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
И если взять js-interop и hicada, то получается взаимодействие с react.js.
Где компоненты - это обычные react компоненты, с нормальными props, которые видны в dev tools, а не как в reagent.
https://gist.github.com/darkleaf/cb75364cd6d6f84223e51116520c1ffc
Ну вот, а я думала реагенту с девтулз ок
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну тогда раскладывай строку на цифры и скармливай (java.time.LocalDate/of 2020 02 31)
(defn valid-date? [date]
 (try
   (let [[y m d] (->> (str/split date #"\.")
                      (mapv #(Integer/parseInt %)))]
     (java.time.LocalDate/of ^int y ^int m ^int d))
   true
   (catch Exception _
     false)))
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
Sergey Trofimov
(defn valid-date? [date]
 (try
   (let [[y m d] (->> (str/split date #"\.")
                      (mapv #(Integer/parseInt %)))]
     (java.time.LocalDate/of ^int y ^int m ^int d))
   true
   (catch Exception _
     false)))
а я тут с varargs вожусь) спасибо
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
а я тут с varargs вожусь) спасибо
был такой вариант, показался более многословным
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
был такой вариант, показался более многословным
вот такой
(defn valid-date? [date]
 (try
   (apply #(java.time.LocalDate/of ^int %1 ^int %2 ^int %3)
          (->> (str/split date #"\.")
               (mapv #(Integer/parseInt %))))
   true
   (catch Exception _
     false)))
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
Sergey Trofimov
вот такой
(defn valid-date? [date]
 (try
   (apply #(java.time.LocalDate/of ^int %1 ^int %2 ^int %3)
          (->> (str/split date #"\.")
               (mapv #(Integer/parseInt %))))
   true
   (catch Exception _
     false)))
а я пытался map внутрь LocalDate/of пробросить, но как-то не выходило)
типа
(apply java.time.LocalDate/of (map int (str/split date #"\.")))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
а я пытался map внутрь LocalDate/of пробросить, но как-то не выходило)
типа
(apply java.time.LocalDate/of (map int (str/split date #"\.")))
ты не можешь использовать java.time.LocalDate/of как clojure function
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
да, уже понял. а лямбду с varargs из нее не получится сделать?
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
даже не лямбду, функцию
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
но кода наверное больше, да
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
да, уже понял. а лямбду с varargs из нее не получится сделать?
ну если объяснишь компилятору, какую функцию из java в каком месте использовать...
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
```
(defn wrapper-of [& args]
   (java.time.LocalDate/of args))
```
типа так, не?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну если объяснишь компилятору, какую функцию из java в каком месте использовать...
там же их две, с разным типом, но одинаковым числом параметров...
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
```
(defn wrapper-of [& args]
   (java.time.LocalDate/of args))
```
типа так, не?
apply нужен
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
Sergey Trofimov
apply нужен
а, блин, лол, да понял))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
а, блин, лол, да понял))
тот случай, когда интероп мешает выразить мыслю
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
tradeoffs)
источник
2020 April 22

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Sergey Trofimov
там же их две, с разным типом, но одинаковым числом параметров...
Предыдущее не читал. Но это про тот случай, для которого изначально придуманы тайпхинты?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Maxim Penzin
Предыдущее не читал. Но это про тот случай, для которого изначально придуманы тайпхинты?
Это про случай с varargs
источник