无需在Clojure中使用引号即可轻松处理文本?

Sti*_*lev 5 string escaping clojure read-eval-print-loop

我正在玩REPL中的文本解析,有时想把一堆数据转换成字符串,无论是bibtex条目还是某些EBNF符号等.通常字符串中可能有引号,而且非常乏味且容易出错,必须手动逃脱它们..

有没有其他方法可以做到这一点,比如Ruby %Q|I可以使用"Quotation Marks"|或者heredocs等等?或者是否可以编写宏或修改阅读器以启用此功能?

Cho*_*ser 1

关于更强大的引用语法已经有一些讨论,但似乎不会立即进行任何更改来支持这一点。

同时,为了专门处理您提到的 REPL 交互,您可能会发现这很有用。请注意,它可能并不适用于每个 REPL——它们并不都支持得read-line很好:

(defn 读取行 []
  (->>(反复阅读行)
       (take-while#(not=%“.”))
       (mapcat#(列表%“\n”))
       (应用str)))

通过在 REPL 中运行、粘贴您的内容,然后单独(read-lines)添加一行来使用它:.

user=>(读取行)
  #_=> 这个“有效”
  #_=> 有时...
  #_=> 。
“这\”有效\”\n有时...\n”
用户=>(打印*1)
这个“有效”
有时...
零