Для опытных пользователей Lisp уровень вложенности важнее, чем поиск закрывающих скобок. Размещение закрывающих скобок в их собственных строках не очень помогает с уровнями вложенности.
Основная идея заключается в том, что круглые скобки находятся непосредственно вокруг их содержимого.
(a)
а не
(a
)
Что следует из этого:
(defun foo (bar)
(foo (bar (baz
...
)
...
)
...
)
)
против.
(defun foo (bar)
(foo (bar (baz ...) ...) ...))
Одна из основных идей при редактировании текста на Лиспе заключается в том, что вы можете выбрать список, дважды щелкнув по скобкам (или с помощью команды клавиши, когда курсор находится внутри выражения или в скобках). Затем вы можете вырезать / скопировать выражение и вставить его в другую позицию в другой функции. Следующим шагом является выбор другой функции и
переопределить функцию. Готово. Нет необходимости удалять или вводить новые строки для закрытия скобок. Просто вставьте и сделайте отступ. Это просто вписывается. В противном случае вы либо потратите время на форматирование кода, либо вам придется переформатировать код с помощью какого-либо инструмента редактора (чтобы закрывающие скобки были на своих строках. В большинстве случаев это создаст дополнительную работу и мешает перемещать код.
Есть один случай, когда опытный Лисперс когда-нибудь напишет закрывающие скобки в своей строке:
(defvar *persons*
(list (make-person "fred")
(make-person "jane")
(make-person "susan")
))
Здесь это означает, что могут быть добавлены новые лица. Поместите курсор непосредственно перед вторыми закрывающими скобками в последней строке, нажмите c-o (открытая строка), добавьте предложение и сделайте отступ в скобках, чтобы они снова выровнялись. Это избавляет от необходимости искать правильные скобки, а затем нажимать клавишу возврата, когда все скобки закрыты в одной строке.