Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Clojure阅读器会对包含冒号的关键字感到困惑?_Clojure_Clojure Repl - Fatal编程技术网

为什么Clojure阅读器会对包含冒号的关键字感到困惑?

为什么Clojure阅读器会对包含冒号的关键字感到困惑?,clojure,clojure-repl,Clojure,Clojure Repl,从: 关键字类似于符号,除了: 它们可以而且必须以冒号开头,例如:fred 它们不能包含“.”或名称类 在当前命名空间中解析以两个冒号开头的关键字 及 符号可以包含一个或多个不重复的“:” 因此,看起来文档应该明确允许将:my:keyword作为关键字 这在我的REPL中起作用: user=> {:my:keyword 1} {:my:keyword 1} 这是有效的: user=> {:mykeyword #_=> 1} {:mykeyword 1} 即使这样也行 =

从:

关键字类似于符号,除了:

它们可以而且必须以冒号开头,例如:fred

它们不能包含“.”或名称类

在当前命名空间中解析以两个冒号开头的关键字

符号可以包含一个或多个不重复的“:”

因此,看起来文档应该明确允许将
:my:keyword
作为关键字

这在我的REPL中起作用:

user=> {:my:keyword 1}
{:my:keyword 1}
这是有效的:

user=> {:mykeyword
  #_=> 1}
{:mykeyword 1}
即使这样也行

=> (clojure.edn/read-string (pr-str {:my:keyword 1}))
{:my:keyword 1}
但这并不是:

user=> {
  #_=> :my:keyword

RuntimeException EOF while reading, starting at line 1
clojure.lang.Util.runtimeException (Util.java:221)

在一个包含冒号的关键字后面,我不能在一个HASMAP文字的中间放一个换行符。 我可以为其他关键字这样做。这样行

user=> {
  #_=> :one
  #_=> 1
  #_=> }
{:one 1}
为什么??这只是读者的一个怪癖吗?AFAICT
:my:keyword
是语法上有效的关键字。我应该担心其他不一致吗

我正在使用

REPL-y 0.3.5,
nREPL 0.2.6
Clojure 1.6.0

正如您的最后一个示例所示,您尚未完成映射,因此我希望它在
:my:keyword
为的任何值处抛出异常。这对我有用

{
 :my:keyword 1
 }
=> {:my:keyword 1}

正如您的最后一个示例所示,您尚未完成映射,因此我希望它在
:my:keyword
为的任何值处抛出异常。这对我有用

{
 :my:keyword 1
 }
=> {:my:keyword 1}

也许有助于了解,你的回复是什么。可以与java-cp clojure-1.7.0-RC1.jar clojure.main等兼容。我在一个leinrepl(1.6)中得到了同样的错误,这可能有助于了解您的repl是什么。可以与java-cp clojure-1.7.0-RC1.jar clojure.main等兼容。我在一个leinrepl(1.6)中得到了同样的错误,这可能有助于了解您的repl是什么。可以与java-cp clojure-1.7.0-RC1.jar clojure.main等兼容。我在一个lein repl(1.6)中遇到了同样的错误。我的repl不符合您的期望,请参阅最近的编辑。您使用的是哪个版本?您在问题中的示例没有关闭映射,您能用map}closed再次检查吗?对不起,我不明白。你是说我遇到麻烦的那个例子吗?在本例中,在我关闭映射之前抛出异常,这就是我的问题。我的REPL不符合您的期望,请参阅最近的编辑。您使用的是哪个版本?您在问题中的示例没有关闭映射,您能用map}closed再次检查吗?对不起,我不明白。你是说我遇到麻烦的那个例子吗?在本例中,在我关闭映射之前抛出异常,这就是我的问题。我的REPL不符合您的期望,请参阅最近的编辑。您使用的是哪个版本?您在问题中的示例没有关闭映射,您能用map}closed再次检查吗?对不起,我不明白。你是说我遇到麻烦的那个例子吗?在本例中,在关闭映射之前抛出异常,这就是我的问题。