【发布时间】:2012-01-05 12:39:07
【问题描述】:
我正在查看来自Festival 的Scheme 中的一些代码,但似乎无法找出cmets。目前,我可以看到;、;; 和;;; 用于表示注释行。网络上的其他来源表明,上述某些可能是表示多线 cmets 的方法。我的问题是:
- 评论
;、;;和;;;有什么区别? - 什么时候使用一个而不是另一个?
- 还有其他更明智的 IMO 方法来评论
Scheme中的代码吗?
【问题讨论】:
我正在查看来自Festival 的Scheme 中的一些代码,但似乎无法找出cmets。目前,我可以看到;、;; 和;;; 用于表示注释行。网络上的其他来源表明,上述某些可能是表示多线 cmets 的方法。我的问题是:
;、;;和;;;有什么区别? Scheme 中的代码吗? 【问题讨论】:
您提到的所有三种形式都是单行 cmets。双分号最初可能是作为 Dorai Sitaram 的 SLaTeX 排版包中的一个提示,即注释将被排版为普通文本,而不是程序文本。
Scheme 也有多行 cmets。
特别是,R6RS 似乎与 Racket 一样,允许使用 #| 和 |# 来开始和结束多行 cmets。此外,完美的#; 组合形成了一个完整的s 表达式。所以,例如,如果你写
#;(define (terrible-function a)
(totally-broken-code
here))
整个定义被视为已注释掉。
【讨论】:
;# 和 ; 与 #; 不同...尝试运行我的示例代码,然后将 #; 更改为 ;# 并再次运行。
#; 形式。
#;,确实是注释掉了整个定义,而;# 和; 只注释掉了一行。 P.S.:很明显你说的是Racket和R6RS方案,只是我测试的很浅。
注释字符是;并且该行之后的任何内容都将被忽略。区别是视觉上的。我经常看到一个;如果注释在代码行上,则使用,;;如果评论单独在一行上,并且;;;如果它是某种标题。注释中最重要的一点可能是遵循您在使用的代码中看到的任何约定。
【讨论】:
// vs ///...
MIT/GNU Scheme 允许将; 用于单行 cmets,#| 和 |# 分别用于打开和关闭多行 cmets。刚刚在 10.1.10 版本上测试。
【讨论】: