Currier 1.3.0

Currier 1.3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年9月
SPM支持 SPM

Tigerpixel 维护。



Currier 1.3.0

  • Liam

Currier

Build Status Version Platform Carthage compatible License

Currier 将任何 Swift 函数转换为该函数的柯里化版本。这是通过将其包装在一个简单的 'curry' 调用中实现的。

给定以下函数

func myMultiply(first: Float, second: Int) -> Double {
    return Double(first) * Double(second)
}

Currier 将生成一个柯里化版本

let curriedMultiply: (Float) -> (Int) -> Double = curry(myMultiply) // Currier used here!

let multiplyByTwo: (Int) -> Double = curriedMultiply(2.0) // Partial application

let result: Double = multiplyByTwo(10)

assert(20 == result) // Assertion true

前面的例子可以简化为以下内容

let sameResult = curry(myMultiply)(2.0)(10)

单元测试提供了使用不同数量参数调用 curry 函数的实例。接受两个参数的函数版本明确指定了类型并附加了注释。

要求

此项目没有外部要求,只需要 Swift。

  • iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 11+
  • Swift 5.1+

对于 Swift 和 Xcode 的旧版本,请参阅先前版本。

安装

Swift 包管理器

Swift 包管理器是管理 Swift 代码分布的官方工具。目前它仅在所有 Apple 平台上可用。它也可以与 Linux 一起使用,但此项目目前对该功能的支持并不完全。

如果您使用它来管理您的依赖项,只需将 Currier 添加到您的 Package.swift 文件中的 dependencies 值即可。

dependencies: [
    .package(url: "https://github.com/tigerpixel/Currier.git", from: "1.3")
]

Cocoapods

您可以通过 CocoaPods 获取 Currier。要安装它,只需将以下行添加到您的 Podfile。

pod "Currier"

Carthage

如果您使用 Carthage 来管理您的依赖项,只需将以下行添加到您的 Cartfile。

github "tigerpixel/Currier"

如果您使用 Carthage 构建您的依赖项,请确保您已经将 Currier.framework 添加到您的目标的 "链接的框架和库" 部分,并在您的 Carthage 框架复制构建阶段中包含它们。

Git 子模块

  1. 将 Currier 存储库添加为您的应用程序存储库的 子模块
  2. 在 Currier 文件夹内运行 git submodule update --init --recursive
  3. Currier.xcodeproj 拖放到您的应用程序的 Xcode 项目或工作空间中。
  4. 在您的应用程序目标设置的 “常规” 选项卡中,将 Currier.framework. 添加到 “嵌入的二进制文件” 部分。
  5. 如果您的应用程序目标不包含任何 Swift 代码,您还应该将 EMBEDDED_CONTENT_CONTAINS_SWIFT 编译设置设置为 “是”。

MIT 许可证

Currier 根据 MIT 许可证提供。详细信息可以在 LICENSE 文件中找到。