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

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

0 投票
语法和读取器

在REPL中,我无意中输入了

user=> 1. "\w+"
RuntimeException 不支持的转义字符:\w clojure.lang.Util.runtimeExce
ption (Util.java:156)

<core$PLUS clojure.core$PLUS@6b7dc78>

您可以看到令人困惑的结果(REPL也处于一个未闭合的字符串状态)。通过查看LispReader.java,我认为DispatchReader至少应该在调用CtorReader之前检查空白字符(也许更好的是检查一个有效的符号字符)。

6 答案

0 投票

评论者:bronsa

不再可复现

0 投票

评论者:alexmiller

在我看来,至少部分可以复现。我看到了第一个示例中的相同行为。第二个示例使用符号1. }有效,但在给出的案例中产生了一个合理的错误。

0 投票

评论者:bronsa

啊,明白了。
解决第一个错误的唯一方法是将1. "\w+"是一个有效的正则表达式文本,即允许1.和下一个分发字符之间有空格。
这是我们想要的吗?

0 投票

评论者:alexmiller

不知道

0 投票

评论者:alexmiller

已从描述中移除第2个例子(已不再存在)。

0 投票
参考: https://clojure.atlassian.net/browse/CLJ-878(由glchapman报告)
...