因此,我使用 scribble/lp 模块使用 plt-scheme 编写了我的第一个识字程序:

#lang scribble/lp
(require scribble/lp)

<<lp_scheme.ss>>

@chunk[<squarefunction>
        (define (f x)
         (* x x))]

当然,那里没有任何用处。现在我有点想知道为什么我不使用简单的注释,而不是文字编程结构。欢迎提出任何意见。如果有人可能有更多的曝光/经验,那就太好了。它可能会更直观地解释记录良好的代码和使用 Literate 编程结构编写的代码之间的差异。

最佳答案

(我假设您使用的是 Donald Knuth 对文学编程的定义。)

关键区别在于序列之一。

在编写常规应用程序时,您表达事物的顺序是有限制的。

为了显示:

  • 特定类的所有代码必须在一个地方表达
    (或在极少数地方,例如 C# 部分类)
  • 一种方法的所有代码都必须一次性给出,按照正确的执行顺序
  • 依赖必须在依赖它们的事物之前声明
    (在大多数语言中使用前声明的变量;在 Pascal 中使用前声明的过程/函数;在 .NET 中先编译库程序集)

  • 通过文学编程,您可以摆脱这种限制,可以自由地按照您在向其他开发人员解释程序时使用的任何顺序来表达您的概念。

    这还有另一个后果——在某些形式中,您可以一次表达一个概念(例如,“所有属性在更改时都会触发 PropertyChanged 事件”),并将其融入到应用程序的无数其他地方。

    对于非常简单的程序,一个有文化的程序和一个注释良好的程序可能看起来一样——但是随着系统复杂性的增加,两者将开始显得非常不同。

    关于scheme - 文学编程的直觉动机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1246406/

    10-14 15:45