Вопросы по теме '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 просмотров
schedule
04.11.2022
Спецификация 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 просмотров
schedule
15.02.2023
Clojure.Spec является производным или псевдонимом другой спецификации
Я хотел бы использовать спецификацию clojure для создания набора ограничений типа, которые могут быть сглажены или дополнительно ограничены другими спецификациями.
Например, у меня может быть много полей, все из которых должны быть действительными с...
74 просмотров
schedule
16.10.2022