函数式编程宏包

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