标签: literate-programming

在Windows上用Python进行文字编程的最佳方法是什么?

我一直在玩各种用Python编写文字的方法.我喜欢noweb,但我有两个主要问题:首先,很难在Windows上构建,我花费了大约一半的开发时间; 第二,它要求我缩进每个代码块,因为它将在最终的程序中 - 我写的时候不一定知道.我不想使用Leo,因为我非常依赖Emacs.

是否有一个很好的文字编程工具:

  1. 在Windows上运行
  2. 允许我在使用时设置块的缩进,而不是在写入时
  3. 还是让我在Emacs工作

谢谢!


更正:noweb 不会让我以后缩进---我误读了我就可以找到的文件.

默认情况下,notangle在扩展块时保留空格并保持缩进.因此,它可以与Miranda和Haskell等语言一起使用,其中缩进很重要

这让我只有"Windows上的运行"问题.

python windows noweb literate-programming

38
推荐指数
4
解决办法
1万
查看次数

识字Haskell(.lhs)和Haddock

目前我只使用Haddock,但在看到一些有文化的Haskell的一些非常有趣的例子(例如这个要点)之后,我有兴趣在一个项目中尝试它.

我得到的问题是:

  • 你怎么写Haddock评论,你在文学部分写什么?

  • 如何将识字编程扩展到多个文件?有人能指出我在一个包含多个模块的程序包中使用文字编程的例子吗?您在大型软件包中使用文字编程的经验是什么?

  • 有文化的Haskell的哪种口味(降价,乳胶,...)是首选?

  • 你为什么要用文字的Haskell或普通的Hillaell编程?你是在两种风格的编程,如果是这样,为什么?

  • 你喜欢block-style(\begin{code})还是Bird-style(>)?为什么?

haskell literate-programming haddock

38
推荐指数
2
解决办法
8755
查看次数

Clojure文档工具的最新技术

在过去一年左右的时间里,我在Clojure讨论列表和其他关于Clojure代码记录工具的地方看到过各种各样的公告.这些包括像Marginalia这样的全面识字编程系统,以及用于创建"小片中的Clojure"(甚至是emacs组织模式)的书籍,以及更常规的Javadoc式解决方案,如Autodoc和Javadoc本身.据报道,可以与Clojure一起使用.一个谷歌搜索出现了各种其他,也许一些值得更多的关注,并且肯定有些只是用于生成文档的个人工具.我的问题是什么是最好的文档工具,根据您使用它们的经验,它们的比较优势和劣势是什么?到目前为止,我还没有使用任何文档工具,并且有兴趣尝试一个或多个.

documentation javadoc clojure literate-programming marginalia

33
推荐指数
4
解决办法
5749
查看次数

为python而发誓

我最近开始使用Sweave*来创建使用R运行的分析报告,现在我正在寻找与我的python脚本相同的功能.

我发现在Sweave文档中嵌入python的引用,但这似乎有点像黑客.有没有人找到一个更好的解决方案,或者是否有一个我不知道的python的等价物?

*Sweave是一种允许嵌入R代码以在乳胶文档中进行完整数据分析的工具

python r literate-programming sweave

27
推荐指数
5
解决办法
4959
查看次数

PStricks和TikZ如何比较易学和API设计的质量?

我的小组在大多数源代码中都使用了Literate Programming--这意味着内部文档是使用LaTeX编写的.我们一直在使用PStricks来制作系统的精美技术图表,但最近建议使用TikZ.我收集了这些信息:

  • TikZ/PGF是新的和维护的; PStricks很长一段时间没有维护者,但在过去几年里已经收到了一些维护.
  • TikZ与许多后端合作,包括(对于那些关心的人)pdftex.PStricks只适用于dvips.
  • PStricks比TikZ更强大,更具表现力.在紧急情况下,您甚至可以充分利用PostScript.
  • PStricks拥有一个重要的生态系统,可以在其基础上构建; TikZ太新了,没有很多这样的东西.
  • TikZ声称其设计"考虑到了PStricks的缺点".作者没有具体说明哪些缺点.

我对两个问题的答案很感兴趣.如果您愿意,请随意为每个问题发布一个答案:

  • 这两种工具的学习曲线是什么?(我认为PStricks有一个陡峭的学习曲线;关于TikZ,我不知情.)

  • 被认为是编程API,这两个包中的一个明显比另一个更好吗?如果是这样,哪个设计更好,为什么?(它有哪些属性让你认为它更好?)

为了说明为什么一个API优于另一个API,您可能想要使用示例.

diagram latex literate-programming pstricks tikz

24
推荐指数
2
解决办法
1万
查看次数

LHS和Markdown:代码块

我碰巧真的喜欢Markdown(可能是因为SO)而且我喜欢在Haskell中编程.我最近发现了Literate Haskell(LHS),我想一起使用Markdown和LHS.让我给你这个愚蠢的例子:

Crazy Literate Haskell
======================

This is an example of some literate Haskell Code:

> module Main where

Look at that IO Monad work:

> main = return 2 >>= print

Wasn't that cool?
Run Code Online (Sandbox Code Playgroud)

这是一个有文化的haskell文件的例子,后来由Markdown解析.但是,我希望代码实际上出现在html代码块中,并且没有>之前的>.因此,我不能仅仅将所有代码行缩进四,因为这会产生您在上面看到的降价.基本上,我希望html像这样出来:

<h1>Crazy Literate Haskell</h1>

<p>This is an example of some literate Haskell Code:</p>

<pre><code>module Main where
</code></pre>

<p>Look at that IO Monad work:</p>

<pre><code>main = return 2 &gt;&gt;= print
</code></pre>

<p>Wasn't that cool?</p>
Run Code Online (Sandbox Code Playgroud)

需要注意的是它没有>符号.我该怎么办?

markdown haskell literate-programming

17
推荐指数
1
解决办法
4053
查看次数

扩展文学编程?

问候.我现在一直在研究Literate Programming,我确实喜欢它背后的想法:你基本上写了一些关于你的代码的文章并写下了尽可能多的设计决策,代码可能围绕模块,内部工作原理由设计决策,潜在扩展产生的模块,假设和结论,所有这些都可以使用tex以一种很好的方式写下来.当然,第一点:它是文档.它必须保持最新,但这不应该那么糟糕,因为你的改变应该有理由,你可以写下来.

但是,文学编程如何在更大程度上扩展?总体而言,文学编程仍然只是文本.当然,非常人类可读的文本,但仍然是文本,因此,很难遵循大型系统.例如,我重新编写了我的编译器的大部分内容以使用>>和一些魔法来将编译步骤链接在一起,因为一些"x.register_follower(y); y.register_follower(z); y.register_follower(a); ... "变得非常笨拙,并将其改为x >> y >> z >> a使它变得更好,尽管这也是它的突破点.

那么,Literate Programming如何扩展到更大的系统?有人试图这样做吗?

我的想法是使用LP来指定使用事件流相互通信的组件,并使用graphviz的子集将所有这些组合在一起.这将是LP的一个相当自然的扩展,因为您可以从网络中提取文档 - 数据流图 - 并且也可以从中生成代码.你怎么看呢?

- Tetha.

methodology literate-programming

16
推荐指数
2
解决办法
1173
查看次数

使用org-babel进行文化编程

我正在使用org-babel进行识字.我的源码结构如下,

-imports
-utility fns
-game structure
 - detailed explanations
Run Code Online (Sandbox Code Playgroud)

这是代码的正常结构,我想要做的是将实用程序fns的解释移到最后,这样它就不会在生成的pdf文件中首先出现.现在这可以用noweb扩展来完成,但问题是当你有很多小函数时我必须添加一个带有唯一名称的src_block向下滚动文件并在文件中添加对它的引用这真的很烦人.有没有办法在一个部分中命名所有src_blocks?说本节中的所有代码都进入了块A.

emacs literate-programming org-mode org-babel

16
推荐指数
1
解决办法
2307
查看次数

Haskell中的文字编程真的是"文化编程"吗?

我是文学编程概念的新手.我正在阅读Donald Knuth关于这个主题的论文(PDF),并且在最初的引言中,他说:

我们不是想象我们的主要任务是指导计算机做什么,而是让我们集中精力向人类解释我们想要计算机做什么.

他或她[文学编程的实践者]努力实现一个易于理解的程序,因为它的概念是以最适合人类理解的顺序引入的,使用了相互加强的正式和非正式方法的混合.

然后,进一步阅读:

关于程序的一个问题是它的结构关系.一个复杂的软件包括简单的部分和这些部分之间的简单关系; 程序员的任务是以最适合人类理解的顺序陈述那些部分和那些关系 - 而不是以某种严格确定的顺序,如自上而下或自下而上.

(......)

自上而下的编程让您对自己的目标有了强烈的了解,但它会迫使您保持很多计划; 悬念累积起来,因为没有任何东西真正被钉死到最后.编程的优势在于,随着越来越多的子程序的构建,你不断使用越来越强大的铅笔; 但它迫使你推迟整个计划组织直到最后一分钟,所以你可能会漫无目的地挣扎.

因此,WEB语言允许人以"意识流"顺序表达节目.缠绵能够争夺一切成的安排,一个Pascal编译器的需求.WEB的这一特性也许是它最大的资产;

上面的摘录让我对这个主题感兴趣,所以我调查了一下.在任何搜索引擎提供的结果中都不难看出Haskell和文字编程之间的关系,但我没有看到"最适合人类理解的命令".相反,我会看到一个做得很好的文档,同时保持计算机所需的顺序才能工作.

  • 你能否使用术语"文学编程"来消除该订单问题?
  • 有文化编程的其他定义是否需要"意识流"顺序功能?
  • Haskell真的有文化编程能力(使用Knuth的定义)吗?

最后,作为一个个人观点,我不得不说,即使Haskell所做的(也可能是许多其他语言)不是Knuth的文字编程,我仍然喜欢这种关于方法和算法的详尽描述的想法.当评论超出目前的代码时,它有很大的作用.


WEB和TANGLE是系统的一部分,最初是D. Knuth在他的第一个文化编程概念的实现中使用的.

haskell literate-programming

16
推荐指数
1
解决办法
918
查看次数

识字Haskell:参考和索引

Literate Haskell是否支持索引函数名,类型类和变量引用?是否有一个我可以在Literate Haskell源上运行的过滤器,它将执行此操作,并为我提供一个很好的PDF手册或一个超链接的HTML文档.

这些是nowebCWEB的一个非常好的功能,我认为它会刺激Literate Haskell的广泛采用.

例如,查看用CWEB编写的单词计数程序.项目#4中第一页上的代码块使用了该代码的使用位置.LHS不支持块,但我想知道代码的使用位置:

  1. 评论func.

    func = id

    用于:(XYZf,ABCg,第1.5节)

    func2 = indefined

    用于:(ABCx,第2.1节)

此外,还有一个索引,它汇总了所有函数名称和变量,以及它们在文档中引用的位置以及其他函数等.

haskell literate-programming

15
推荐指数
1
解决办法
835
查看次数