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

Как Clojure.Spec ссылочный тип (например, атом)?
Интересно, как бы я определил функцию с параметром, которая содержит карту в атоме. (defn do-something [a] (prn (vals @a))) Это явно не работает: (s/fdef do-something :args (s/cat :a map?)) Как мне указать, что a является...
1110 просмотров
schedule 08.03.2023

Спецификация Clojure и конструкторы записей
Если я определил следующую запись: (defrecord Person [name id]) и следующее: (s/def ::name string?) (s/def ::id int?) (s/def ::person (s/keys :req-un [::name ::id])) Как я могу гарантировать, что вы не сможете создать человека,...
1498 просмотров
schedule 30.06.2022

В чем разница между s/or и s/alt в clojure.spec?
В чем разница между s/or и s/alt в clojure.spec? Пожалуйста, приведите несколько хороших примеров, чтобы объяснить различия.
76 просмотров
schedule 17.11.2023

Clojure.spec — почему это полезно и когда используется
Я недавно смотрел выступление Рича Хики на Cojure Conj 2016 , и хотя оно было очень интересным, Я не совсем понял смысл clojure.spec или когда его использовать. Казалось, что большинство идей, таких как соответствие, валидность и т. д., уже имели...
905 просмотров
schedule 22.05.2023

Метапрограммирование со значениями clojure.spec?
Я пробовал clojure.spec, и у меня есть одна идея, как его использовать, — создать пользовательский интерфейс для редактирования экземпляра карты, которую я указываю. Например, он может сгенерировать веб-форму с полем выбора даты для ключа, указанного...
219 просмотров
schedule 25.05.2023

Выполнение макросов с именованными аргументами через Clojure Spec
Допустим, у нас есть макрос, который принимает один обязательный аргумент, за которым следуют необязательные позиционные аргументы, такие как (require '[clojure.spec :as spec] '[clojure.spec.gen :as gen]) (defmacro dress [what &...
212 просмотров
schedule 20.05.2023

Clojure Spec для карты с ключами, не являющимися ключевыми словами
Давайте посмотрим на реальный пример карт проекта Leiningen :global-vars : ;; Sets the values of global vars within Clojure. This example ;; disables all pre- and post-conditions and emits warnings on ;; reflective calls. See the Clojure...
1579 просмотров
schedule 07.07.2023

Как распаковать спецификацию последовательности?
с Clojure core.spec у меня может быть следующее: (s/conform (s/cat :a even? :b (s/* odd?) :a2 even? :b2 (s/* odd?)) [2 3 5 12 13 15]) => {:a 2, :b [3 5], :a2 12, :b2 [13 15]} то, что я хотел бы иметь, это удалить избыточность, вынеся...
115 просмотров
schedule 05.07.2023

Соответствие clojure.spec вызывает исключение переполнения стека
Кто-нибудь может объяснить, что не так с примером ниже? Почему он выдает исключение StackOverflowError? (s/def ::tag keyword?) (s/def ::s string?) (s/def ::n number?) (s/def ::g (s/cat :tag (s/? ::tag) :ex (s/alt :string ::s...
204 просмотров
schedule 29.07.2022

Почему мой or-spec действителен только для одной из заданных спецификаций?
Рассмотрим следующую спецификацию для текста или номера порта канального уровня: (require '[clojure.spec.alpha :as spec]) (spec/def ::text (spec/and string? not-empty)) (spec/valid? ::text "a") ; => true (spec/valid? ::text "")...
82 просмотров
schedule 13.02.2024

Как проверить разрешимость спецификаций Clojure?
clojure.spec.alpha позволяет использовать неразрешимые спецификации при определении новой: (s/def :foo/bar (s/or :nope :foo/foo)) Здесь :foo/foo не может быть разрешено, поэтому использование :foo/bar вызовет исключение при...
553 просмотров
schedule 18.10.2022

Как проверить отдельный идентификатор в спецификации/сборке
(s/def ::users (s/coll-of ::user :distinct true)) Приведенная выше спецификация требует, чтобы каждая пользовательская карта была отдельной, но как я могу указать ее для проверки только отдельных :user/ids Коллекция ниже не должна быть...
939 просмотров
schedule 13.10.2022

Спецификация Clojure, типизированная и схема
В моем проекте Clojure я использую Clojure Spec, но если мне нужно использовать какую-то библиотеку, например compojure-api, мне нужно использовать Schema. В чем преимущество одного над другим? Почему я должен рассматривать один над другими?...
2301 просмотров
schedule 06.06.2022

Чем спецификация Clojure отличается от библиотек тестирования на основе свойств, таких как Haskell QuickCheck?
Другие языки имеют библиотеки тестирования на основе свойств, такие как Haskell QuickCheck . Чем Clojure spec отличается от таких библиотек? Или это просто среда тестирования на основе свойств для Clojure ?
906 просмотров

Повторное использование кода определения структуры из спецификации/ключей clojure
У меня есть определение спецификации, которое проверяет содержимое входящих данных. Поскольку данные представляют собой карту полей, я использую spec/keys для ее проверки. Например: (def person-data {:name "Jon Doe", :age 30}) (s/def ::name...
382 просмотров
schedule 18.09.2022

Сравните значения двух спецификаций, Clojure.spec
Я определил спецификации как - (s/def ::start integer?) (s/def ::end integer?) (s/def ::collection (s/keys :req-un [::start ::end])) Работает нормально как (s/valid? ::collection {:start 9 :end 13}) Но теперь я также должен проверить,...
342 просмотров
schedule 10.01.2023

Как вы используете fdef с картами в параметрах?
Я пытаюсь заставить fdef успешно пройти проверку с набором карт в качестве параметра. Я получаю следующее: (defn func [foo bar]) (def t [{:a "hi ":b "jimbob"} {:a "hi" :b "johnboy"}]) (spec/def ::a string?) (spec/def ::b string?) (spec/def ::c...
60 просмотров
schedule 20.08.2022

Как извлечь метаданные из переменной, когда функция возвращает свой символ?
Я использую re-frame с spec для проверки app-db , как в todomvc . Когда пользователь делает недопустимую запись, я использую s/explain-data (в перехватчике повторного кадра), чтобы вернуть карту problems с именем :pred icate, которое...
322 просмотров
schedule 02.06.2023

Clojure.spec или эквивалент s/and
Мне понравилось работать с clojure.spec ; это помогло выявить ошибки данных ближе к причине. В настоящее время я использую его для проверки ответа на запрос веб-сервера, но у меня возникают трудности с синтаксисом операции clojure.spec, которая...
515 просмотров
schedule 13.07.2023

Тестирование функций CRUD Clojure, например, с ruby ​​Rspec
Я только что закончил свои первые шесть недель работы с Clojure, и пока я очень доволен этим языком. Я развиваю свой личный блог с leiningen и PostgreSQL. Я уже могу публиковать новый контент, загружать файлы, и у меня есть сеансы, файлы cookie и...
435 просмотров
schedule 21.12.2023