如何在 \newcommand 中使用 lhs2tex 的 \perform

如何在 \newcommand 中使用 lhs2tex 的 \perform

我试图定义一个命令\runx,它不仅可以评估 Haskell 表达式(这已经是\perform完成了),而且还可以在评估之前打印该表达式。

所以我尝试了

\newcommand{\runx}[1]{result=\ttfamily{#1} \perform{#1} }

并像使用它一样

\runx{pi}

事实证明,发送给 ghci 的表达式是一个文字#1,而不是pi。因此\perform,显然对于我的目的来说,应用 太早了,即在定义命令时。当要求评估时,Ghci 没有返回任何有用的信息,#1并且\perform{#1}评估结果为零。

  • 因此 \runx{pi}变成
  • {result=\ttfamily{pi} \perform{#1} }变成
  • {result=\ttfamily{pi}}

因此,评估结果pi在我的 pdf 文档中丢失了,我只看到:

在此处输入图片描述

有没有什么办法可以让它\perform不那么急切呢?

相关内容