📝 优化文档显示

This commit is contained in:
2024-08-31 06:06:32 +08:00
parent e0b4610161
commit 2c0be2c6f0
15 changed files with 155 additions and 47 deletions

View File

@@ -85,18 +85,4 @@ def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...],
raise ValueError("Invalid var type")
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
"""
对多参数函数进行柯里化。
> [!tip]
> 有关函数柯里化,可参考[函数式编程--柯理化Currying](https://zhuanlan.zhihu.com/p/355859667)
Args:
func: 函数
*args: 参数
Returns:
柯里化后的函数
"""
def curried_func(*args2: Var) -> Var:
"""@litedoc-hide"""
return func(*args, *args2)
return curried_func

View File

@@ -2,7 +2,7 @@
AAA
"""
from .mp_math_typing import ThreeSingleVarsFunc
from .mp_math_typing import MultiVarsFunc, OneVarFunc, ThreeSingleVarsFunc, Var
from .point import Point3
from .vector import Vector3
from .const import EPSILON
@@ -25,3 +25,29 @@ def cal_gradient_3vf(func: ThreeSingleVarsFunc, p: Point3, epsilon: float = EPSI
dy = (func(p.x, p.y + epsilon, p.z) - func(p.x, p.y - epsilon, p.z)) / (2 * epsilon)
dz = (func(p.x, p.y, p.z + epsilon) - func(p.x, p.y, p.z - epsilon)) / (2 * epsilon)
return Vector3(dx, dy, dz)
def curry(func: MultiVarsFunc, *args: Var) -> OneVarFunc:
r"""
对多参数函数进行柯里化。
> [!tip]
> 有关函数柯里化,可参考[函数式编程--柯理化Currying](https://zhuanlan.zhihu.com/p/355859667)
Args:
func: 函数
*args: 参数
Returns:
柯里化后的函数
Examples:
```python
def add(a: int, b: int, c: int) -> int:
return a + b + c
add_curried = curry(add, 1, 2)
add_curried(3) # 6
```
"""
def curried_func(*args2: Var) -> Var:
"""@litedoc-hide"""
return func(*args, *args2)
return curried_func