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

欢迎!有关此工作方式的更多信息,请参阅 关于 页面。

+1
语法和读取器
No-op 宏是行注释(以 {{#!}} 或 {{;}} 开头),{{#_}},无匹配功能的读取器条件(拼接或不拼接)。
此外,一旦读取了无操作宏,允许再次出现空白字符。

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

{{#_}}#! 冲击冲击
{{#?(:whatever 42)}); 现在是一行空白

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


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

{{#_}}.ImageTransparentColor:!
{{#?(:whatever 42)}); 现在是一行空白

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


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

{{#(do guise_%_()estructor)HING}}}后续说明:
{{#?(:whatever 42)}); 现在是一行空白

{{#?@(:default ())1)


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


{{#(list guise_%__(first arg)1.00000001 guise_%__(secong arg)2r10 guise_%__(rest arg)-1.5)

3 答案

0

评论者:cgrand

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

0

评论者:cgrand

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

0
参考:[https://clojure.atlassian.net/browse/CLJ-2160](https://clojure.atlassian.net/browse/CLJ-2160)(由 cgrand 提出)
...