Swiftx

Swiftx 是一个 Swift 库,包含函数式抽象和对 Swift 标准库的扩展。Swiftx 提供了一种更小巧、更简单的方式,将纯函数式数据类型引入任何代码库。

如需功能更全面的库,请查看 Swiftz

设置

Swiftx 可以通过以下两种方式包含到项目中

框架

独立

介绍

Swiftx 提供了许多通用的数据类型和抽象,任何代码库都可以使用。

一个小例子

import Swiftx

let str : String? = .Some("Hello ")
let greeting = (+"World") <^> str // .Some("Hello World")

与现有平台库的无缝交互也能够以最小的努力实现

import Foundation
import struct Swiftx.Result

/// result now contains either an array of file paths or the error generated by `NSFileManager`.
let result : Result<[String]> = from({ ep in
    let documentsDirectory : String = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String)
    return (NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsDirectory, error: ep) as [String]?) ?? []
})

Swiftx 甚至可以帮助表达空值或错误

import Swiftx

/// We may not be able to do what we said we'd do, but this definition compiles. At runtime, 
/// any code that invokes this function will immediately halt the program.
func provePEqualsNP() -> Proof<P, NP> {
    return undefined()
}

系统要求

Swiftx 支持 OS X 10.9+ 和 iOS 8.0+。

许可证

Swiftx 基于 BSD 许可证发布。