#format #common-lisp
#форматировать #common-lisp
Вопрос:
Существует ли особенно простая для чтения реализация Common Lisp format
?
Я нашел версию SBCL, но поскольку SBCL имеет репутацию высокопроизводительной реализации Common Lisp, мне интересно, существует ли реализация, которая больше фокусируется на ясности и удобочитаемости.
Честно говоря, версия SBCL не слишком сложна для чтения, и я не вижу много оптимизаций, но если есть более удобная для чтения версия, я хотел бы знать об этом!
Комментарии:
Ответ №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. Спасибо, я проверю их!