【问题标题】:Scheme Coding Style Questions方案编码风格问题
【发布时间】:2010-11-08 05:27:58
【问题描述】:

我对我的代码的 Scheme 风格感到困惑。

如果表单格式为:

一个。

if()
  ()
  ()

或b。

  if () ()
        ()

或 c。

if () () ()

我应该将 cond 子句格式化为
一个。

  cond ()
       ()

或b。

cond
()
()

我什么时候使用单个 ;评论和双重;;?

【问题讨论】:

    标签: functional-programming lisp scheme


    【解决方案1】:

    看看 Peter Norvig 的 "Tutorial on Good Lisp Programming Style",尽管您可以在任何 Scheme/Lisp 书籍中找到您特定问题的答案。

    【讨论】:

      【解决方案2】:

      填写 Doug 对您的具体问题的回答:

      (if test
          then
          else)
      
      (cond
        (test1 exp1)
        (test2 exp2)
        (else exp3))
      

      或者,对于具有长系列表达式的条件:

      (cond
        (test1
         exp1
         exp2)
        (else
         exp3
         exp4))
      

      评论约定稍微宽松一些。当我编写仔细的代码时,我会这样做:

      ;;; new section ;;;
      ;;; section comments
      
      
      (define (f g . x)
        "docstring goes here"
        ;; in-function comments
        (g x)) ; trailing line comment
      

      ;;; 使用的确切界限各不相同。特别是,有些人(包括我)不太喜欢尾随行 cmets,而是将 ; 用于功能内 cmets,;;; 用于部分 cmets。

      【讨论】:

      • 请注意,大多数方案没有“文档字符串”。
      【解决方案3】:

      Here 是 Lisp 风格指南,here 是推荐的评论风格。

      如果你有一个 emacs 风格的编辑器,在你的 s-expression 中输入 C-M-q 应该会为你格式化它;如果您的换行符是合理的(并且 indent-alist 的编辑器配置没有被弄得太糟糕),它将为您提供正确格式化的代码。

      【讨论】:

        猜你喜欢
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多