Вопросы по теме 'clojure.spec'

Как я могу использовать свои спецификации по прямому назначению, если они находятся в отдельном пространстве имен?
Один из примеров в clojure.spec Руководстве  – это простая спецификация анализа параметров: (require '[clojure.spec :as s]) (s/def ::config (s/* (s/cat :prop string? :val (s/alt :s string? :b boolean?)))) (s/conform ::config...
2392 просмотров

Спецификация Clojure принуждает значение вложенной карты
Я принуждаю значение карты следующим образом: (require '[clojure.spec :as s]) (defn x-integer? [x] (cond (integer? x) x (string? x) (try (Integer/parseInt x) (catch Exception e...
1308 просмотров
schedule 12.07.2022

количество? нельзя использовать в спецификации
В Clojure 1.9.0-alpha13 я могу определить предикат спецификации, используя spec/and и integer? , но не and и number? , как оказалось. Это озадачивает. Также вызывает недоумение тот факт, что при определении предиката ошибки не возникает, а...
188 просмотров
schedule 10.04.2023

Спецификации для соответствующих спецификаций / AST
У меня есть спецификация DSL, которая, как обычно, представляет собой последовательность ( cat ). Я хочу воспользоваться синтаксическим анализом спецификации (т. е. conform ing), чтобы получить AST выражения, которое соответствует моему DSL....
105 просмотров
schedule 02.10.2022

В чем разница между «&» и «и» в Clojure Spec?
Кажется, мне трудно отделить значения операторов & и and в Clojure Spec. Они оба, похоже, делают одно и то же, только один отмечен как оператор регулярного выражения, разница, которую я не уверен, что понимаю важность.
126 просмотров
schedule 21.06.2023

Спецификация Clojure, которая сопоставляет и генерирует упорядоченный вектор переменной длины
Начнем с обычной последовательности (require '[clojure.spec :as spec] '[clojure.spec.gen :as gen]) (spec/def ::cat (spec/cat :sym symbol? :str string? :kws (spec/* keyword?))) что соответствует векторам (spec/conform ::cat...
1411 просмотров
schedule 27.04.2023

Реалистичная спецификация Clojure для функции с именованными аргументами
Скажем, у нас есть функция clothe , которая требует один позиционный аргумент person в дополнение к ряду необязательных именованных аргументов :hat , :shirt и :pants . (defn clothe [person & {:keys [hat shirt pants]}] (str "Clothing "...
596 просмотров
schedule 15.06.2022

Clojure Spec обращается к данным в иерархической спецификации
Если у вас есть набор спецификаций, которые используются для проверки иерархического набора данных, скажем, файл yaml. Можно ли в одной из дочерних спецификаций ссылаться на данные, которые встречаются в дереве раньше?
126 просмотров
schedule 10.11.2022

Как написать спецификацию Clojure для функции, которая принимает аргумент последовательности?
Я пишу функцию, которая принимает последовательность треугольников (которые на самом деле представлены как maps ). Моя спецификация: (s/fdef triangle-list-to-pattern :args (s/cat :trs (s/* ::maths/Triangle)) ) И функция...
138 просмотров
schedule 11.10.2022

Использование clojure.spec для декомпозиции карты
Я понимаю, что clojure.spec не предназначен для произвольного преобразования данных, и, насколько я понимаю, он предназначен для гибкого кодирования знаний предметной области с помощью произвольных предикатов. Это безумно мощный инструмент, и мне...
242 просмотров
schedule 22.10.2022

Clojure: пост-условие не распознает %
У меня есть функция Clojure с пост-условием: {:post [(s/valid? ::MyQuery %)]} Но я получаю эту ошибку: Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: % in this context,...
70 просмотров
schedule 25.10.2023

Как принимать в спецификации только заказанные коллекции
Как я могу создать спецификацию, которая принимает только последовательные (то есть сохраняющие порядок) коллекции? Например cljs.user=> (s/def ::path (s/+ number?))...
170 просмотров
schedule 21.12.2022

Использование clojure.spec для карты
У меня есть следующая карта: (def gigs {:gig-01 {:id :gig-01 :title "Macaron" :artist "Baher Khairy" :desc "Sweet meringue-based rhythms with smooth and sweet injections of soul"...
65 просмотров
schedule 14.11.2022

Почему возникает ошибка при импорте clojure.spec.alpha?
У меня есть проект boot-clj со следующими зависимостями: :dependencies '[[org.clojure/clojure "RELEASE"] [adzerk/boot-test "RELEASE" :scope "test"]] В рамках этого проекта я запускаю boot repl и пытаюсь...
174 просмотров
schedule 02.04.2023

Clojure.spec: существование поля на основе другого поля в генераторе
Допустим, у нас есть API для сохранения в БД* атрибутов различных типов файлов: текст, изображения, аудио и видео файлы. Он должен иметь возможность получать следующие поля в зависимости от их типа: базовые свойства для всех файлов: {"file-type":...
204 просмотров

Clojure.Spec является производным или псевдонимом другой спецификации
Я хотел бы использовать спецификацию clojure для создания набора ограничений типа, которые могут быть сглажены или дополнительно ограничены другими спецификациями. Например, у меня может быть много полей, все из которых должны быть действительными с...
74 просмотров