Common Lisp`format`实现

Tia*_*ong 2 format common-lisp

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

我发现了SBCL的版本,但由于SBCL因其作为Common Lisp 的高性能实现而闻名,我想知道是否有一个实现更注重清晰度和可读性.

为了公平起见,SBCL的版本是不是难懂,我没有看到很多的优化,但如果有一个方便读者的版本,我想知道一下吧!

cor*_*ump 6

我没有看到很多优化.

他们在其他地方.只需在Emacs + Slime下的REPL中输入"format",然后输入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)
Run Code Online (Sandbox Code Playgroud)

[...]但如果有一个更易于读者阅读的版本,我想知道它!

您可以在非官方的github存储库上在线阅读CLisp的版本 ; 或Clozure CL的实施.另请参阅ABCLformat.lisp以及ECL等.我无法提供每个Common Lisp实现的链接(请参阅此页面以获取列表).从我可以看到他们都倾向于有很多评论,但你是否发现一个比另一个更可读的取决于你.