为什么 Lisp 风格指南在某些情况下建议使用特定数量的分号进行注释?

问题描述 投票:0回答:1

我阅读了风格指南 of Elispof Common Lisp 在各种情况下使用特定数量的分号,简而言之:

  • 代码行末尾的注释用单分号
  • 双分号用于在自己的行上进行注释
  • 用于文档注释的三个分号
  • 代码页眉和页脚的四个分号

具体来说,为什么要在自己的行注释中使用双分号?为什么有人决定这样做?似乎双分号没有添加任何信息,因为很明显注释是在它们自己的行上,并且我没有看到它们有任何其他目的。我更喜欢在那里使用单个分号,并在以下情况下减少分号的数量(因此两个用于文档)。

lisp common-lisp comments elisp conventions
1个回答
0
投票

我不了解历史,或者即使完全了解历史。 我使用过的 Lisps 没有

;
作为注释字符(而是
%
),但我现在不记得它们是否有相同的约定。

但重要的是这是一个约定:如果你遵循约定,其他人将能够阅读你的代码,其他人的编辑器将能够处理你的代码。 使用不同的注释约定,就像使用不同的缩进约定一样,会降低您编写的程序对其他人的可用性。 如果你是唯一会看它们的人,当然,做你想做的事。

然而,当前的惯例有一些明显的优势。

(defun foo (x)
  ;; conventional comment saying what FOO does
  (let ((d (ccm x)))                    ;note things about d here but
                                        ;this note is quite long
    ;; This comment does not continue from the previous one, but
    ;; rather describes some things about this part of the code.
;;; This is all broken
;;;     (when (< d *the-mass*)
;;;       (let* ((r (radiation-case-size d)))
;;;         (commission (manufacture-radiation-case r) d r)))
     d))

正如您所看到的,恰好跨越两行的尾随注释和下面的行间注释之间的区别在这里很重要。 函数中故意丑陋的三冒号注释立即表明正在发生一些奇怪的事情,特别是函数本身的某些部分被注释掉了。

同样,在节标题中使用四个分号在排版上很有用:它可以帮助人们阅读长的顶级注释,这些注释分为多个部分,并带有标题。

© www.soinside.com 2019 - 2024. All rights reserved.