Common Lisp`format`实现

时间:2016-10-13 06:33:08

标签: format common-lisp

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

我找到了SBCL's version,但由于SBCL因其作为Common Lisp的高性能实现而闻名,我想知道是否有实施更注重清晰度和可读性。

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

1 个答案:

答案 0 :(得分:6)

  

我没有看到很多优化。

他们在其他地方。只需输入"格式"在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)
  

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

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