我认为在函数规范中对传递给函数的文本代码进行匹配,类似于宏的实现将会有价值。可能 fdef
也可以接受一个 :syntax
规范,这将用于此。
我认为有相当多的函数可以看出这一点是有用处的。很多函数将接收选项,例如作为关键词,这些选项很可能是以文本形式提供的,因此在读取时间对于函数调用的使用进行匹配将是宝贵的。
在其他可能有用的情况中,比如对简单的使用例如 +
,其中参数经常包含文本数字,规范又可以在读取时应为一种语法错误验证一个关键字或字符串文本不传给它。
实际上,我发现许多 Clojure 函数本身都有特定的函数语法,如果规范能够在读取时间以与宏相同的方式进行语法匹配那就太好了。