gpt4 book ai didi

clojure - 使用 clojure.spec 值进行元编程?

转载 作者:行者123 更新时间:2023-12-03 00:30:08 24 4
gpt4 key购买 nike

我一直在尝试 clojure.spec,对于如何使用它,我的一个想法是生成用于编辑我指定的 map 实例的 UI。例如,它可能会生成一个 Web 表单,其中包含指定为日期之类的键的日期选择器字段。

库中有一个 get-spec 方法,但似乎没有按照我需要的方式对规范作为值进行操作的函数。有没有什么方法可以做一些事情,比如获取 map 规范并以向量的形式返回该 map 所需的键?这种元编程的规范是否超出了 clojure.spec 的预期用例?

最佳答案

使用规范进行元编程绝对符合 clojure.spec 的预期用例。

我们尚未发布(但已经编写并打算发布)规范表本身的规范。有了这些,就可以符合规范表单本身并获取表示规范的数据结构,该数据结构可用于(例如)从 map 规范中获取所需的键。

符合::spec 规范可能看起来像这样:

user=> (s/def ::name string?)
:user/name
user=> (s/def ::m (s/keys :req [::name]))
:user/m
user=> (s/conform ::spec (s/form ::m))
[:form {:s clojure.spec/keys, :args {:req [[:key :user/name]]}}]

然后您可以从该结构中取出这组键。

关于clojure - 使用 clojure.spec 值进行元编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com