当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用clojure.spec值进行元编程?》经验,为你挑选了1个好方法。

我一直在尝试使用clojure.spec,我对如何使用它的想法是生成用于编辑我指定的地图实例的UI.例如,它可能会生成一个带有datepicker字段的Web表单,该字段用于指定为日期的键,即此类事物.

get-spec库中有一个方法,但似乎没有任何函数按照我需要的方式操作规范值.有没有办法做一些事情,比如采取地图规范并将该地图所需的键作为向量返回?这种元编程是否符合clojure.spec的预期用例之外的规范?



1> Alex Miller..:

使用规范进行元编程肯定属于clojure.spec的预期用例.

我们尚未发布(但已编写并打算)规范表格规格.通过这些,可以使规范形式本身符合并返回表示规范的数据结构,该规范可用于(例如)从地图规范中获取所需的密钥.

符合:: 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]]}}]

然后你可以从那个结构中拔出一组键.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有