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

欢迎!请查阅 关于 页面以了解有关如何操作的更多信息。

+1 投票
语法和读取器
No-op 宏是行注释(以 {{#!}} 或 {{;}} 开始),{{#_}},读取条件(拼接或不拼接)没有匹配的功能。
此外,一旦读取了 no-op 宏,就再次允许正常空白。

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

#:#_()#! 感叹号感叹号
#?(: whatever 42); 现在是空行

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


标签文字 {{#inst "2017-04-24T09:11:29.878-00:00"}}}

##_()#! 感叹号感叹号
#?(: whatever 42); 现在是空行

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


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

#(do %#_()#! 感叹号感叹号
#?(: whatever 42); 现在是空行

#?@(:default ())1)


此外,匿名参数实现是泄漏的(任何 {{%n}} 都接受,只要 {{n}} 在 (-2.0 -1.0] 范围内(映射到 {{%&}})以及 [1.0 正无穷),任何表示都可以使用(bigdec 或 bigint 或 float 或任意基数的整数)。


#(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报告)
...