对于函数组合操作,"functional" 包的替代方案是什么?

What's an alternative to the "functional" package for the function composition operation?

特别是,我正在寻找一个支持函数组合的包。

谷歌搜索,有很多对 Collin Winter 的函数及其 compose() 函数的引用。但是,相关文档已消失:http://www.oakwinter.com/code/functional/

这让我对它的持续支持没有太大信心。

https://mathieularose.com/function-composition-in-python/ 等一些参考资料提供了相对简单的手动实现。但是,除非绝对必要,否则我宁愿使用社区正在聚集​​的现有库,也不愿重新实现这样的基本操作。

我是 toolz 的超级粉丝,在个人项目和工作中都经常使用它。它得到积极维护,有据可查,尽管版本号 0.x,但似乎相当成熟。

它提供了一个 compose 功能,可能正是您正在寻找的功能。

例如:

from toolz import compose

add_one = lambda x: x + 1
square = lambda x: x**2

# Add 1, then square
compose(square, add_one)(2)  # == 9