(println (quote (foo bar))-6ren">
gpt4 book ai didi

clojure - 在这种情况下,Clojure 中的引用和字符串有什么区别?

转载 作者:行者123 更新时间:2023-12-01 07:16:07 26 4
gpt4 key购买 nike

以下两个命令在 repl 中打印出相同的内容:

user=> (println "(foo bar)")
(foo bar)
nil
user=> (println (quote (foo bar))
(foo bar)
nil

那么在这种情况下,引号和字符串之间有什么区别?

编辑: (+ 3 2) and (+ (quote 3) 2)是相同的。文档说引用会产生未评估的形式(所以也许我在这里回答我自己的问题,但请验证)引用是一种带有惰性求值的优化?

最佳答案

它们确实是不同的东西:

user=> (class '(foo bar))
clojure.lang.PersistentList
user=> (class "foo bar")
java.lang.String

即使他们可能有相同的 println结果,它们不一样。

其余的,@bmillare 是对的:你没有 quote为了懒惰,你引用来表达文字。

关于clojure - 在这种情况下,Clojure 中的引用和字符串有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com