我试图定义一个命令\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
不那么急切呢?