Size: a a a

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

2020 March 05

T

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

T

Timmy B in Clojure — русскоговорящее сообщество
о чём говорю как раз
источник

T

Timmy B in Clojure — русскоговорящее сообщество
достаточно нетривиальная обработка последовательности и шо? как code golf
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Timmy B
у меня есть задача: написать набор валидаций для двух сложных структур
оригинальный код проекта на яве/котлине

вот пример одной из валидаций

(defn capacity-not-exceded? [vechicle stop]
 (let [load (:load stop)
       capacity (:capacity vechicle)]
   (any? < (map vec capacity load))))

(defn find-capacity-violation [tour fleet]
 (let [type-name (:typeId tour)
       vechicle-type (vehicle-by-type fleet type-name)
       stops (:stops tour)]
   (filter (partial capacity-not-exceded? vechicle-type) stops)))


(defn validate-maximal-capacity [problem solution]
 (let [fleet (:fleet problem)
       tours (:tours solution)]
   (filter nil? (map #(find-capacity-violation % fleet) tours))))
Не увидел, как звучит вопрос.
источник

T

Timmy B in Clojure — русскоговорящее сообщество
вопроса как такового не было, просто rant
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Timmy B
meander - это вообще чёрная магия
meander клевый, да
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Timmy B
достаточно нетривиальная обработка последовательности и шо? как code golf
Котлин:
capacity.zip(load).any { (c,l) -> c < l }
источник

НМ

Наташа Маркс in Clojure — русскоговорящее сообщество
Привет, мальчики :))
источник

Ц

Цонстантин in Clojure — русскоговорящее сообщество
Наташа Маркс
Привет, мальчики :))
Привет
источник
2020 March 06

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Всем ку!
А подскажите пожалуйста, как мне в мапе написать спеку для значений?
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
(s/def ::some-key string?)
(s/def ::map (s/keys :req-un [::some-key]))
Такое?
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Tim Plotnikov
Всем ку!
А подскажите пожалуйста, как мне в мапе написать спеку для значений?
Посмотри map-of если я правильно понял.
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Alexey Golda
Посмотри map-of если я правильно понял.
Я читал доку, но как понял из описания, оно под один предикат подгоняет все значения.
А мне нужно типа вот в мапе есть ключи и чтобы вот это значение соответствовало вот этому предикату, а вот это - вот этому.

Получается я пытаюсь мапе тип дать, но это всё мой statically-typed бэкграунд 😁
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
через s/keys как в примере выше
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
(s/def ::some-key string?)
(s/def ::map (s/keys :req-un [::some-key]))
Такое?
А ключ тогда должен быть ::some-key или любое имя у него может быть?
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Нет, не любое. Должно быть :some-key. Нужно, что бы любое значение ключа в мапе было определенного типа?
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Нет, не любое. Должно быть :some-key. Нужно, что бы любое значение ключа в мапе было определенного типа?
Хм, да, думаю это сработает, но и если просто имя предиката отвязать от имени ключа в мапе, то тоже будет норм)
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
К слову, именно этот предикат используется не в одном месте
источник

IG

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

IG

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