笛卡尔积 0.0.1

笛卡尔积 0.0.1

Pierre Felgines 维护。



CartesianProduct

这个库提供了一个 product 函数,可以创建一个懒加载的笛卡尔积。

例如

let sequence = product(["a", "b"], ["c", "d"])
sequence.forEach { tuple in
	print(tuple)
}

// prints
("a", "c")
("a", "d")
("b", "c")
("b", "d")

注意在上面的例子中,sequence 是一个 CartesianProduct2Sequence<Array<String>, Array<String>>,而不是 Array<(String, String)>。这意味着 sequence 并没有预先计算出两个数组积的所有值。

你可以向 product 函数传递最多 15 个参数(即使这样做可能不是个好主意)。

安装

使用 Cocoapods

只需将以下行添加到 Podfile 中:

pod 'CartesianProduct'

使用 Swift Package Manager

要将 CartesianProduct 包含到一个 Swift Package Manager 包中,请将它添加到定义在 Package.swift 文件中的 dependencies 属性中。

dependencies: [
	.Package(url: "https://github.com/felginep/CartesianProduct.git", majorVersion: <majorVersion>, minor: <minor>)
]

生成的内容

使用GYB生成《CartesianProduct.swift》文件。

您可以通过以下方式下载GYB:

wget https://github.com/apple/swift/raw/master/utils/gyb
wget https://github.com/apple/swift/raw/master/utils/gyb.py
chmod +x gyb

然后使用make generate命令。

运行测试

运行make test命令。

作者

  • 皮埃尔·费尔吉内斯 博客

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

致谢