【问题标题】:Put result of code right below the code in resulting PDF. Haskell将代码结果放在生成的 PDF 中的代码正下方。哈斯克尔
【发布时间】:2013-05-13 02:09:01
【问题描述】:

有什么方法可以执行 .lhs 文件中的代码并将结果放在生成的 PDF 中代码本身的正下方?

例如:

[1,2,3] ++ [4,5,6]
[1,2,3,4,5,6]

【问题讨论】:

  • 你的意思是自动评估不是声明的表达式,并在转换成 pdf 之前将结果粘贴回源代码,有点像 Mathematica 吗?
  • 是的,类似的。它用于显示函数如何工作的示例,如果有人运行代码,我想执行,如果有人查看 PDF,我也想显示
  • 当然,您需要对输出内容进行更多控制,或者您不打算使用任何不可打印的定义?为什么不使用例如HaTeX,也许与a suitable quasi-quoter一起避免代码重复。

标签: haskell literate-programming


【解决方案1】:

如果你使用 LaTeX,你可以使用lhs2TeX。这是一个简单的示例文档:

\documentclass{article}

%include polycode.fmt
%options ghci

\begin{document}

< [1,2,3] ++ [4,5,6]

This evaluates to \eval{[1,2,3] ++ [4,5,6]}.

> x = [1 .. 6]

And this evaluates to \eval{x}, too.

\end{document}

这将在后台以源文件作为输入运行 GHCi。 因此,您可以在当前(识字的 Haskell)模块的上下文中使用 \eval 评估表达式, 并且它们的结果将被拼接到生成的.tex 源中。

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 2010-10-22
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    相关资源
    最近更新 更多