标签: literate-programming

如何使用Stack为Haskell设置org-babel

我在跑:

  • GNU Emacs 24.4.1
  • 堆栈版本1.3.3
  • 组织模式
  • 哈斯克尔模式

我看了看:

虽然上面的要点看起来很有希望,但我还没有找到任何看起来像权威的方式来运行org-haskell(例如,没有关于melpa的东西),当然没有什么专门针对运行堆栈环境而不是使用我的任何复杂性全球ghc将需要.

当我尝试:

#+BEGIN_SRC haskell
let x = "test"
putStrLn x
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

我明白了

执行Haskell代码块

......永远挂起.当我Cg,我看到:

GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Some flags have not been recognized: prompt2, ghci     | 
ghci    ?> let x = "TESTING!"
putStrLn x
"org-babel-haskell-eoe"
Prelude| 
<interactive>:4:1: parse error on …
Run Code Online (Sandbox Code Playgroud)

emacs haskell literate-programming org-mode org-babel

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

如何在roxygen literate编程中逃脱%?

我的函数的参数的默认值包含"%".这似乎是roxygen的一个问题,它会产生很多警告,并且在尝试构建乳胶文档时R CMD检查失败.

如何使此功能(及其文档)有效?使用%%或\%代替%无济于事.

#' Test escape \% from in-source documentation (roxygen).
#'
#' What happens when parameters contain special latex characters? 
#'
#' @param x unsuspicious parameter 
#' @param format sprintf format string (default "\%5.0f")
#'
#' @return formatted string
#' @export
#' @author Karsten Weinert
testroxy <- function(x, format = "%5.0f") {
  sprintf(format,x)
}
Run Code Online (Sandbox Code Playgroud)

r literate-programming roxygen

14
推荐指数
2
解决办法
2083
查看次数

sweave和ggplot2:根本没有生成pdf

我正在尝试创建一个包含ggplot2完成的图形的sweave报告.虽然从长远来看我正在寻找一些环境 - 我只是在这里使用一个简单的.Rnw文件,它只包含代码和情节

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}
Run Code Online (Sandbox Code Playgroud)

不幸的是,图形没有创建,我只得到一个损坏的.pdf和.eps文件.虽然我得到了一个好的.tex文件,除了图形外似乎有用.我使用以下基本代码来创建它:

 Sweave("myfile.Rnw")
Run Code Online (Sandbox Code Playgroud)

我刚刚在网上找到了一些讨论透明度和sweave/ggplot2问题的老帖子,但没有任何可能有帮助的帖子.我也尝试了轻松的套餐,这也没有帮助.顺便问一下,有关decumar包装的消息吗?

r literate-programming ggplot2 sweave

13
推荐指数
1
解决办法
2988
查看次数

识字编码与 std :: pair,解决方案?

正如大多数程序员所钦佩并尝试遵循Literate编程的原则,但在C++中,我经常发现自己使用std::pair了大量的常见任务.但是std::pair,恕我直言,文学节目的邪恶敌人......

我的观点是,当我回到我一两天前编写的代码时,我看到一个std::pair(通常作为迭代器)的操作我不知道" 什么做了iter->第一个和iter->第二个意思? ? "

我猜其他人在查看他们的std::pair代码时有同样的疑虑,所以我想知道,有没有人想出一些好的解决方案来恢复识字时使用std::pair

c++ literate-programming

12
推荐指数
2
解决办法
1514
查看次数

使用垂直空白

我在这个问题上的意图不是迂腐,而是探索一个被忽视的重要主题轴(空白的使用).关于水平空白的使用,有条件的缩进,if和括号之间的空格等,已经引起了很多争论和关注.事实上,这个问题被认为是如此重要和有争议,以至于一些公司不仅有规则它的标准,但有些公司甚至有规则禁止它的讨论.

考虑到水平空白的状态,为什么对垂直空白的讨论是如此死的问题呢?为什么xy更重要?几天前,我注意到当我阅读代码时,我不经思考地经常调整语句的垂直分组.现在已经阅读了其他人的代码,着眼于垂直空白,我注意到了几个模式,所以我问stackoverflow:

  • 您对垂直空白应用了哪些硬性规则和软规则?
  • 是否存在通常被认为非常糟糕或非常好的实践的垂直空白用途?
  • 您是否发现阅读代码中包含"正确"的垂直空白有助于理解它?
  • 除了印刷工和我以外的其他人吗?

language-agnostic whitespace literate-programming

12
推荐指数
3
解决办法
3340
查看次数

为什么Knuth使用这个笨重的减量?

我正在看一些Don Knuth教授的代码,用CWEB编写,转换为C.具体的例子是dlx1.w,可从Knuth的网站获得

在一个阶段,struct nd [cc]的.len值递减,并且以一种笨重的方式完成:

  o,t=nd[cc].len-1;
  o,nd[cc].len=t;
Run Code Online (Sandbox Code Playgroud)

(这是一个特定于Knuth的问题,所以也许你已经知道"o"是一个预处理器宏,用于递增"mems",这是通过访问64位字来衡量的累计工作量.) "t"中剩余的值绝对不会用于其他任何事情.(此处的示例位于dlx1.w的第665行,或者是ctangle之后的dlx1.c的第193行.)

我的问题是:为什么Knuth这样写,而不是

nd[cc].len--;
Run Code Online (Sandbox Code Playgroud)

他确实在其他地方使用过(dlx1.w第551行):

oo,nd[k].len--,nd[k].aux=i-1;
Run Code Online (Sandbox Code Playgroud)

(而"oo"是一个类似的宏,用于递增"mems"两次 - 但这里有一些细微之处,因为.len和.aux存储在相同的64位字中.为S.len和S分配值. aux,通常只计算mems的一个增量.)

我唯一的理论是减量包括两个内存访问:首先查找,然后分配.(这是正确的吗?)这种写作方式提醒了这两个步骤.这对于Knuth来说会非常冗长,但也许这是一种本能的备忘录,而不是说教.

为了它的价值,我在没有找到答案的情况下搜索了CWEB文档.我的问题可能更多地与Knuth的标准实践有关,我正在逐渐采用.我会对这些实践被布局(并且可能被批评)作为一个块的任何资源感兴趣 - 但是现在,让我们关注为什么Knuth以这种方式编写它.

c knuth increment literate-programming decrement

12
推荐指数
1
解决办法
235
查看次数

文学编程

文学编程是一种开发软件的方法,其中文档首先出现,然后是编码.一个人编写代码片段的文档,然后编写代码片段的实现.软件源代码的视觉外观将是一个简单的文档,如word,其中包含代码段落.

我正在尝试将我工作的开发工具转换为仅使用文字编程,因为它为代码可读性和维护带来了巨大的优势.但是,由于缺乏工具,LP的使用在公司中受到限制.例如,编程识字的理想方法是使用单词标记编写段落,然后插入带有实现的子段.但我似乎无法找到VS200x执行LP的任何好工具.

理想情况下,这样的工具看起来就像Word 2007,但集成到IDE中.当编码器将光标设置在代码段落上时,它将提供所有功能,就像我们现在在IDE中一样.

什么是LP的好工具,特别是.NET和VS200x?

.net ide ms-word literate-programming

11
推荐指数
3
解决办法
1841
查看次数

什么是合法的文化Haskell?正式语法在哪里?

有人将Literate Haskell和Markdown结合起来了.对我有意义,所以我想尝试一下.但是Haskell对Markdown'#'标头语法不喜欢:

Hello World

> main = putStrLn "hello, world"
Run Code Online (Sandbox Code Playgroud)

作品...

$ runhaskell hello_world.lhs 
hello, world
Run Code Online (Sandbox Code Playgroud)

而...

# Hello World #

> main = putStrLn "hello, world"
Run Code Online (Sandbox Code Playgroud)

不...

$ runhaskell hello_world.lhs
hello_world.lhs:1:3: lexical error at character 'H'
Run Code Online (Sandbox Code Playgroud)

什么是合法的定义?Haskell语法仅通过示例提及Literate Haskell,并且没有任何暗示Markdown语法无效.

markdown haskell literate-programming

11
推荐指数
1
解决办法
1053
查看次数

如何从Express路由映射中自动生成API文档?

我正在开发nodejs + Express中的REST API,我一直在README文件中记录我的API,我想知道是否可以自动化它.例如:

app.get('/path/to', dosomething);
app.post('/path/to/:somethingelse', scream);
Run Code Online (Sandbox Code Playgroud)

我想让它自动生成这个

GET: /path/to dosomething
POST: /path/to/:somethingelse scream
Run Code Online (Sandbox Code Playgroud)

rest self-documenting-code literate-programming node.js express

11
推荐指数
3
解决办法
9690
查看次数

将结果的代码放在生成PDF的代码正下方.哈斯克尔

有没有办法在.lhs文件中执行代码并将结果放在代码本身的正下方?

例如:

[1,2,3] ++ [4,5,6]
[1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

haskell literate-programming

10
推荐指数
1
解决办法
202
查看次数