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/