format - Common Lisp `format` 实现

标签 format common-lisp

Common Lisp 的 format 是否有一个特别容易阅读的实现?

我找到了 SBCL's version ,但由于 SBCL 以 性能 Common Lisp 实现而著称,我想知道是否有一个更注重清晰度和可读性的实现。

公平地说,SBCL 的版本并不难以阅读,而且我没有看到很多优化,但如果有更多读者友好的我想知道它的版本!

最佳答案

I don't see a lot of optimizations.

他们在别处。只需在 Emacs+Slime 下的 REPL 中输入“格式”并输入 M-. 调出一个缓冲区,其中包含与符号相关的不同位置,包括优化:

###/sbcl-1.3.7/src/code/cmacros.lisp
  (DEFINE-COMPILER-MACRO FORMAT)
###/sbcl-1.3.7/src/code/target-format.lisp
  (DEFUN FORMAT)
###/sbcl-1.3.7/src/compiler/srctran.lisp
  (:DEFTRANSFORM FORMAT (NULL (SB-INT:CONSTANT-ARG STRING) &REST STRING) "optimize")
  (:DEFTRANSFORM FORMAT (NULL FUNCTION &REST T) "optimize")
  (:DEFTRANSFORM FORMAT ((MEMBER T) FUNCTION &REST T) "optimize")
  (:DEFTRANSFORM FORMAT (STREAM FUNCTION &REST T) "optimize")
  (:DEFTRANSFORM FORMAT (T SIMPLE-STRING &REST T) "optimize")
  (:DEFOPTIMIZER FORMAT SB-C:DERIVE-TYPE)
  (:DEFOPTIMIZER FORMAT SB-C:OPTIMIZER)
###/sbcl-1.3.7/src/compiler/fndb.lisp
  (DECLAIM FORMAT SB-C:DEFKNOWN)

[...] but if there's a more reader-friendly version I'd like to know about it!

您可以阅读 CLisp 的 version在非官方 github 存储库上在线; 或 Clozure CL 的 implementation .另请参阅 ABCL 的 format.lisp ,以及 ECL , ETC。 我无法提供指向每个 Common Lisp 实现的链接(有关列表,请参阅 this page)。据我所知,他们都倾向于有很多评论,但是您是否发现一个比另一个更具可读性取决于您。

关于format - Common Lisp `format` 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40013832/

相关文章:

java - 为什么 "010"等于 8?

common-lisp - 重新定义conses的print-object方法在不同的CL实现中有不同的效果

lisp - 如何解码mp3文件

list - 如何理解 lisp 中的列表(cons 结构)

javascript - 格式化银行账户输入仅供显示

json - json 的紧凑二进制表示

lisp - 如何从嵌套列表 lisp 中删除元素

common-lisp - 使用 cond 语句时出现意外错误

xcode - 等同于 %@ 的 Swift 字符串格式说明符

java - 加密后得到相同的输入文件格式-->base64编码-->加密文件-->base64解码-->解密--->解密文件