请在 2024 年 Clojure 状态调查! 分享您的想法。

欢迎!有关本网站如何工作,请参阅 关于 页面以获取更多信息。

+1
语法和读取器
无操作宏是行注释(以 {{#!}} 或 {{;}} 开头),{{#_}},读取条件(切片或不切片)没有任何匹配的功能。
此外,一旦读取了无操作宏,就可以再次使用正则空白。

示例
命名空间映射 {{#foo{:bar :baz}}}

#:#_()#! bang bang
#?(:Whatever 42); 现在是一个空白行

#?@(:default ())foo
{:bar :baz}


标记字面量 {{#inst "2017-04-24T09:11:29.878-00:00"}}

##_()#! bang bang
#?(:Whatever 42); 现在是一个空白行

inst "2017-04-24T09:11:29.878-00:00"


匿名参数:{{#(do %1)}}

#(do %#_()#! bang bang
#?(:Whatever 42); 现在是一个空白行

#?@(:default ())1)


此外,匿名参数的实现有泄漏(任何 {{%n}} 都被接受,只要 {{n}} 在 (-2.0 -1.0] (映射为 {{%&}}) 和 [1.0 无穷大) 范围内,并且可以使用任何表示形式(大数或有理数或浮点数或任何基数的整数)。


#(list %#_(first arg)1.00000001 %#_(second arg)2r10 %#_(rest arg)-1.5)

3 个答案

0

评论者:cgrand

此补丁从读取循环中提取主体,以公开一个返回形式或读取器的 readSome 方法(如果没有从当前位置读取到具有值的表单)。
此外,此补丁还添加了一个正则表达式模式以验证匿名参数。

0

评论者:cgrand

clj2160-2 是 clj2160 加上两个尚未删除的冗余检查。

0
参考: https://clojure.atlassian.net/browse/CLJ-2160(由 cgrand 报告)
...