请你在 2024 年 Clojure 状态调查 中分享你的想法!

欢迎!请查看 关于 页面获取有关该功能更多信息。

0
规范

你好,

是否可以从 `s/select` 表达式中得到“封闭”生成器
及其/或让它在 Spec 2 中作为默认生成器?

从 Wiki 中的示例

(ns user
  (:require [clojure.alpha.spec :as s]))

(s/def ::id int?)
(s/def ::first string?)
(s/def ::last string?)
(s/def ::user (s/schema [::id ::first ::last ::addr]))

(s/def ::my-user (s/select ::user [::id]))

(s/exercise ::my-user)

这会生成具有比所选键更多的用户

([#:user{:id 0} #:user{:id 0}]
 [#:user{:addr #:user{:city "1"}, :first "O", :id 0}
  #:user{:addr #:user{:city "1"}, :first "O", :id 0}])

我认为这和 `s/schema` 为 `::user` 执行的规范生成器生成的数据是相同的。
我的猜测是这还没有实现。

是否可以支持这个功能?

1 答案

0

这也许最终会是一个有用的功能。我认为你现在可能通过自定义生成器的额外努力做到这一点。

好的,谢谢你的回答。
...