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

欢迎!请查看关于页面了解有关操作方式的更多信息。

0
规范

你好,

能否从 `s/select` 形式中获得一个“封闭”生成器
或者将其设置为 Spec 2 的默认值?

从维基百科的示例中

(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

这可能最终是一个有用的功能。我认为你现在可以通过额外努力和自定义生成器来实现它。

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