【发布时间】:2013-04-11 23:17:58
【问题描述】:
我习惯于 Python's itertools 使用迭代器(F#: 序列)做功能性的事情,并且想知道 F# 或常用库中是否有等价物,因为它们非常方便。
对我来说最重要的工具是:
- product : 笛卡尔积,相当于嵌套的 for 循环
- 组合
- 排列
- 趁着
- 放下
- chain : 将多个迭代器链接在一起形成一个新的更长的迭代器
- 重复* : 重复 (5) -> 5, 5, 5...
- count* : count(10) -> 10, 11, 12...
- 循环*:循环([1,2,3])-> 1,2,3,1,2...
* 我想这 3 个会在 F# 中产生单子?如何让它们无限?
系统提示我提问,因为我看到了 this question on permutations in F#,并且很惊讶它不是库的一部分或内置于语言中。
【问题讨论】:
-
TakeWhile、dropwhile链接和重复都包含在默认的 F# 库中。