欢迎!有关这方面的更多信息,请参阅 关于 页面。
在 Common Lisp 中,(format nil "~a" :A) 返回 "A"。然而,在 Clojure 中,它返回带有冒号的值
(clojure.pprint/cl-format false "~a" :A) => ":A"
评论由:jongwon.choi 提供
发现了 cl-format 的另一个问题
(clojure.pprint/cl-format false "SELECT from RateSchedules ~@(link: WHERE ~{~A=?~^ ~}~)" '()) => "SELECT from RateSchedules WHERE" ;; 应为 "SELECT * from RateSchedules"
我认为问题在于 () 或 (link: ) 应被视为假但不是。
评论由:alexmiller 提供
:a 是一个关键字,我预计它的 ASCII 格式将是 :a。我不确定大小写敏感性与该有什么关系。
评论由:jafingerhut 提供
Alex,大小写是次要问题。Common Lisp 的 (format nil "~a" :A) 返回 "A",不是 ":A"。问题是输出中存在冒号,而不是字符串的大小写。
对于一条记录,Alex 所描述的是为 ~S - 标准。参见 http://www.lispworks.com/documentation/lw50/CLHS/Body/22_cd.htm