【问题标题】:Commenting code in Scheme在 Scheme 中注释代码
【发布时间】:2012-01-05 12:39:07
【问题描述】:

我正在查看来自FestivalScheme 中的一些代码,但似乎无法找出cmets。目前,我可以看到;;;;;; 用于表示注释行。网络上的其他来源表明,上述某些可能是表示多线 cmets 的方法。我的问题是:

  1. 评论;;;;;;有什么区别?
  2. 什么时候使用一个而不是另一个?
  3. 还有其他更明智的 IMO 方法来评论 Scheme 中的代码吗?

【问题讨论】:

    标签: scheme comments


    【解决方案1】:

    您提到的所有三种形式都是单行 cmets。双分号最初可能是作为 Dorai Sitaram 的 SLaTeX 排版包中的一个提示,即注释将被排版为普通文本,而不是程序文本。

    Scheme 也有多行 cmets。

    特别是,R6RS 似乎与 Racket 一样,允许使用 #||# 来开始和结束多行 cmets。此外,完美的#; 组合形成了一个完整的s 表达式。所以,例如,如果你写

    #;(define (terrible-function a)
        (totally-broken-code
         here))
    

    整个定义被视为已注释掉。

    【讨论】:

    • 不,;#;#; 不同...尝试运行我的示例代码,然后将 #; 更改为 ;# 并再次运行。
    • 编辑:也许不清楚我在这里说的是 Racket 和 R6RS 方案,而不是旧版或不同版本的方案。 Racket 和 R6RS 都支持#; 形式。
    • 你对,我错了 =)。 #;,确实是注释掉了整个定义,而;#; 只注释掉了一行。 P.S.:很明显你说的是Racket和R6RS方案,只是我测试的很浅。
    • 嗯,你这很礼貌。如果我赞成您的评论,那是赞赏,还是仅仅意味着? :)
    • 很高兴看到一个相当亲切的分歧。我都投了赞成票:)
    【解决方案2】:

    注释字符是;并且该行之后的任何内容都将被忽略。区别是视觉上的。我经常看到一个;如果注释在代码行上,则使用,;;如果评论单独在一行上,并且;;;如果它是某种标题。注释中最重要的一点可能是遵循您在使用的代码中看到的任何约定。

    【讨论】:

    • Racket style guide 配合得很好
    • 这有点像在许多其他语言中使用// vs ///...
    【解决方案3】:

    MIT/GNU Scheme 允许将; 用于单行 cmets,#||# 分别用于打开和关闭多行 cmets。刚刚在 10.1.10 版本上测试。

    【讨论】:

      猜你喜欢
      • 2010-11-04
      • 2011-04-13
      • 2011-10-02
      • 2011-04-14
      • 2012-02-05
      • 2023-03-14
      • 1970-01-01
      • 2016-07-23
      • 2015-09-30
      相关资源
      最近更新 更多