首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用clojure.spec值进行元编程?

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

Stack Overflow用户
提问于 2017-01-15 10:07:22
回答 1查看 220关注 0票数 7

我一直在试用clojure.spec,我对如何使用它有一个想法,那就是生成UI来编辑我指定的地图实例。例如,它可能会生成一个web表单,其中包含指定为日期的键的日期选择器字段,诸如此类。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 11:02:05

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

我们还没有发布(但已经编写并打算)规范表单本身的规范。有了这些,就有可能整合规范表单本身,并返回表示规范的数据结构,该结构可用于(例如)从映射规范中获取所需的键。

符合::spec规范可能如下所示:

代码语言:javascript
复制
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]]}}]

然后,您可以从该结构中提取一组密钥。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41657101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档