普贤教程 › 包参考
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_partial | f, a1 |
fn_compose | f, g |
fn_memo | f, cache, x |
fn_memo_make | f, cache |
fn_negate | pred |
其余 14 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
fn_partial2 | f, a1, a2 |
fn_dict_copy | d |
fn_identity | x |
fn_constant | v |
fn_pipe | f, g |
fn_flip | f |
fn_repeat | f, n, x |
fn_apply | f, x |
fn_until | f, pred, x, max_iter = 1000 |
fn_all_of | preds |
fn_any_of | preds |
fn_thread_first | x, funcs |
fn_compose3 | f, g, k |
fn_double | f |
包内说明(源码头注释)
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))
============================================================
部分应用:返回函数,调用时把剩余参数追加到固定参数之后