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 添加

Ah,right.
修复第一个错误唯一的方法是使1. "\w+"成为有效的正则表达式文字,也就是说,允许1.和接下来的派发字符之间有空格。
这是否是我们想要的?

0投票
by

评论由:alexmiller 添加

dunno

0投票
by

评论由:alexmiller 添加

在描述中删除了第二个(不再存在)示例。

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