px普贤教程PuXian
普贤教程 › 包参考

functools 包

函数式工具(partial/compose/memoize)

项值
包名functools
版本0.2.0
可用版本0.1.0 / 0.2.0
入口functools.px
分类并发与通用模式
文件数 / 行数1 / 146

安装与引入

bash
pxpkg init          # 首次
pxpkg add functools@0.2.0
pxpkg install
px
import functools
所属分类教程:并发与通用模式

公开接口

函数参数
fn_partialf, a1
fn_composef, g
fn_memof, cache, x
fn_memo_makef, cache
fn_negatepred
其余 14 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
fn_partial2f, a1, a2
fn_dict_copyd
fn_identityx
fn_constantv
fn_pipef, g
fn_flipf
fn_repeatf, n, x
fn_applyf, x
fn_untilf, pred, x, max_iter = 1000
fn_all_ofpreds
fn_any_ofpreds
fn_thread_firstx, funcs
fn_compose3f, g, k
fn_doublef

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/functools —— 函数式工具(partial/compose/memoize)
------------------------------------------------------------
纯函数库(无 IO、无状态),编译(px build)与解释(px run)双模式一致。
fn_partial(f, a1, a2, ...)            → 函数值    部分应用(前置固定参数)
fn_compose(f, g)                      → 函数值    h(x) = f(g(x))
fn_memo(f, cache, x)                  → [新cache, 结果]  记忆化单次调用
fn_memo_make(f, cache)                → [新cache, 函数]  返回记忆化包装函数
fn_negate(pred)                       → 函数值    谓词取反
说明:
- 函数值捕获参数按引用(M160 修复后三轨一致,PX-DEF-001 已移除)
- 记忆化缓存由调用方显式持有(dict),守写库规范顶层无状态;
键比较用 str(x)(与 itertools it_unique 同口径,混合类型注意碰撞)
- 组合为右结合语义:fn_compose(f, g)(x) = f(g(x))
============================================================
部分应用:返回函数,调用时把剩余参数追加到固定参数之后