Реализация `формата» Common Lisp

#format #common-lisp

#форматировать #common-lisp

Вопрос:

Существует ли особенно простая для чтения реализация Common Lisp format ?

Я нашел версию SBCL, но поскольку SBCL имеет репутацию высокопроизводительной реализации Common Lisp, мне интересно, существует ли реализация, которая больше фокусируется на ясности и удобочитаемости.

Честно говоря, версия SBCL не слишком сложна для чтения, и я не вижу много оптимизаций, но если есть более удобная для чтения версия, я хотел бы знать об этом!

Комментарии:

1. github.com/robert-strandh/SICL/tree/master/Code/Format

Ответ №1:

Я не вижу много оптимизаций.

Они находятся в другом месте. Просто набрав «format» в REPL в Emacs Slime и 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) amp;REST STRING) "optimize")
  (:DEFTRANSFORM FORMAT (NULL FUNCTION amp;REST T) "optimize")
  (:DEFTRANSFORM FORMAT ((MEMBER T) FUNCTION amp;REST T) "optimize")
  (:DEFTRANSFORM FORMAT (STREAM FUNCTION amp;REST T) "optimize")
  (:DEFTRANSFORM FORMAT (T SIMPLE-STRING amp;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)
  

[…] но если есть более удобная для чтения версия, я хотел бы знать об этом!

Вы можете прочитать версию CLisp онлайн в неофициальном репозитории github; или реализацию Clozure CL. Посмотрите также на формат ABCL.lisp, а также ECL и т. Д. Я не могу предоставить ссылку на каждую реализацию Common Lisp (список см. На этой странице). Из того, что я мог видеть, все они, как правило, содержат много комментариев, но найдете ли вы один более читаемым, чем другой, зависит от вас.

Комментарии:

1. Спасибо, я проверю их!