这里介绍本人编写的用于 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}