这里介绍本人编写的用于 LaTeX 函数式编程的 functional 宏包,2022 年 03 月发布。最新版本为 functional 2022G(使用说明,源码仓库)。目前已上传到 CTAN 中,可以在最新版 MiKTeX 或 TeXLive 中直接使用。
这个宏包提供了易用的 LaTeX2 函数式编程接口。如果你需要在 LaTeX 中编程,它是 expl3 和 LuaTeX 之外的另一种选择。
虽然 expl3 中已使用了函数这个名称,但它的函数执行过程是由外而内的。而在这个宏包里,大部分的函数执行都是由内而外的,这就和其他的编程语言比如 Lua 是一致的。由这种特性,代码调试也变得容易得多。
使用方法:新建一个 tex 文档,然后用下面代码:
\documentclass{article}
\usepackage{functional}
\begin{document}
\IgnoreSpacesOn
\prgNewFunction \mathSquare { m }
{
\intSet \lTmpaInt { \intEval { #1 * #1 } }
\prgReturn { \expValue \lTmpaInt }
}
\IgnoreSpacesOff
\mathSquare{5}
\mathSquare{\mathSquare{5}}
\end{document}