读取字符串不输出完整的字符串clojure

Read-string doesn't output complete string clojure

我对函数式编程还很陌生。我正在学习 clojure。我正在尝试一些命令。其中一些工作正常。我在下面得到了这个奇怪的:

(read-string "1 2 3")
;;this ouputs
1

(read-string "[1 2 3]")
;;this ouputs
[1 2 3]

我想知道为什么第一个没有输出完整的字符串。 但确实在第二个输出它。 1 2 3

有什么原因吗?


如果你想知道,我是在命令行上做的。这真的不重要。

None 你的例子输出一个字符串。

正如文档字符串所说:"Reads one object from the string s."

在第一种情况下,对象是 1,在第二种情况下,对象是 [1 2 3]

要输出字符串,对象必须是字符串,例如。 G。 (read-string "\"1 2 3\"")

名字read-string中"string"的意思是表示它的参数是一个字符串,而不是它的return值。它的重点是从给定的字符串中解析一段 clojure 语法,这在您的两个示例中都是这样做的。字符串 "1 2 3" 包含 三个 形式而不是只有一个。 read-string 始终解析并 return 是单一形式,因此 returning 1 是此处的预期行为。