【发布时间】:2016-09-17 01:13:10
【问题描述】:
-
考虑
core.typed注释函数的方式:(t/ann typed-function [t/Str :-> t/Str]) -
现在考虑 Prismatic Schema 注释函数的方式:
(s/defn schema-function :- s/Str [arg :- s/Str] arg)
就个人而言,我发现core.typed 注释函数的方式在精神上更清晰,更接近于 Haskell 等强类型语言。
问题: 有没有办法用 Prismatic Schema 在 clojure 中制作某种宏或函数,具有 (2) 的效果,但具有 (1) 的视觉外观?也就是说,类似于以下内容:'
(custom-annotation-macro schema-function [s/Str :-> s/Str])
(defn schema-function [arg] arg)
这样的效果只是
(s/defn schema-function :- s/Str
[arg :- s/Str]
arg)
【问题讨论】:
标签: haskell clojure clojurescript plumatic-schema clojure-core.typed