一个标准模块。受Haskell的Prelude启发。
项目描述
目录
序言
我喜欢Haskell,也希望Haskell的一些Prelude函数可以在Python中使用。
希望您使用nalude编码愉快。
Nalude
Nalude是一个标准模块,它受Haskell的Prelude启发。因此,nalude也是一个函数式编程库。
Nalude不明确区分Applicative或单调函数,因为它们在Python的基本结构中区分不明显。当然,主要原因是我还不够成熟。
以下函数,Nalude试图实现
- 折叠和遍历
- 列表
- 杂项
- 特殊
- 字符串
- 元组
- 压缩和解压缩
同时,它还实现了一些仅在Python中可用并在`extra`中包含的函数。
函数结构
折叠和遍历
- foldr(f: Callable[[b, a], b], init: b, t: Sequence[a]): 序列的右结合折叠。
- foldl(f, init, t): 可迭代的左结合折叠。与
reduce
相同。 - foldr1(f, t): foldr的一个变体,没有基础情况。
- foldl1(f, t): foldl的一个变体,没有基础情况。
- product(nums): 计算数字的乘积。
- (需要帮助) 遍历: 将结构中的每个元素映射到一个动作,从左到右评估这些动作,并收集结果。
- (需要帮助) 序列: 从左到右评估结构中的每个动作,并收集结果。
列表
- head(xs): 提取可迭代对象中的第一个元素。
- last(xs): 提取可迭代对象中的最后一个元素。
- null(xs): 测试序列是否为空。
- 无限列表
-
iterate(f, x): 产生对 x 进行 f 的重复应用的结果。
-
repeat(x): 重复 x。
-
replicate(n, x): 返回一个长度为 n 的列表,其中每个元素的值都是 x。
-
cycle(xs): 将可迭代对象绑定到无限循环中。
-
子列表
- tail(xs): 提取列表头部之后的元素。
- init(xs): 提取可迭代对象的所有元素,除了最后一个。
- take(n, xs): 返回序列 xs 的前 n 个元素。
- drop(n, xs): 返回 xs 中前 n 个元素之后的剩余元素。
- splitat(n, xs): 返回一个元组,其中第一个元素是 xs 的长度为 n 的前缀,第二个元素是序列 xs 的剩余部分。
- takewhile(p, xs): 返回满足谓词 p 的 xs 的最长前缀。
- dropwhile(p, xs): 返回在 takewhile(p, xs) 之后剩余的子串。
- (需要帮助) span(p, xs): 等于 (takewhile(p, xs), dropwhile(p, xs))。
- (需要帮助) break_(p, xs): 等于 (takewhile(not_(p), xs), dropwhile(not_(p), xs))。
-
杂项
- id_(x): 恒等函数。
- const(x, _): 对于所有输入都评估为 x。
- o(f1, f2): (.) 函数组合
- flip(f): 翻转 f 的两个参数的顺序。
- until(p, f, x): 产生应用 f 直到 p 成立的结果。
字符串
- lines(s): 在换行符处将字符串拆分为字符串列表。
- unlines(xs): lines 的逆操作,为每个元素添加换行符。
- words(s): 将字符串拆分为由空白字符分隔的单词列表。
- unwords(xs): words 的逆操作,用空格连接单词。
特殊
- not_(f): 布尔 "not"。
- all_(p, xs): 确定结构中的所有元素是否满足 p。
- any_(p, xs): 确定结构中的任何元素是否满足 p。
- concat(xss): 所有序列容器元素的连接。
- concatmap(f, xss): 在容器中的所有元素上映射一个函数,并连接生成的列表。
元组
- fst(t): 提取元组的第一个组件。
- snd(t): 提取元组的第二个组件。
- curry(f, a, b): 将未柯里化的函数转换为柯里化函数。
- uncurry(f, ab@(a, b)): 将柯里化函数转换为接受对的函数。
压缩和解压缩
- zipwith(f, *seqs): zipwith 是 map(f, zip),但 f 接受单独的参数而不是元组。
- unzip(pairs): 将对的可迭代对象转换为一个元组序列。(非懒加载)
额外
- flatten(xs,*,ignore=(dict,)): 将可迭代的可迭代对象展开为一个单可迭代对象。它将忽略
ignore
元组中的实例。
开始使用
安装
pip install nalude
结语
历史
版本 0.3.0
- 数据:
- 添加: - 展平迭代器时的自定义忽略。
版本 0.2.0
- 数据:
- 添加: - 在 extra 中添加 flatten。
版本 0.1.0
- 数据:
- 纪念版本: 首次发布。
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
nalude-0.3.0.tar.gz (18.1 kB 查看散列值)
构建分发
nalude-0.3.0-py3-none-any.whl (57.7 kB 查看散列值)
关闭
nalude-0.3.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4da2bade4488c6e6c7934e4321ed4f4d75964174c33a79d8417aaa1192c4edf4 |
|
MD5 | 1a169592012d8bb7f4c72848da5762bb |
|
BLAKE2b-256 | c87db937aab0e9a5a41a949f363a361ac4cbddfc7c30fc158d934913c6ec0cac |
关闭
nalude-0.3.0-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5eb73cf683d1c278592bf25f134526ddd5705246c0c73e068ec9770ad25ba833 |
|
MD5 | e71c849ddb54763cc771c5cc449e2c66 |
|
BLAKE2b-256 | 5309d8c56d47fbc6676aa3467751b859d32a5022688238b0b0660433e3c898f6 |