{"id":15038630,"url":"https://github.com/tigerpixel/currier","last_synced_at":"2026-02-22T00:40:04.408Z","repository":{"id":56906925,"uuid":"82850390","full_name":"tigerpixel/Currier","owner":"tigerpixel","description":"Super easy FP function currying for Swift","archived":false,"fork":false,"pushed_at":"2019-10-01T19:33:07.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T15:16:40.151Z","etag":null,"topics":["curry","currying","fp","functional-programming","swift","swift-3","swift-framework","swift-language","swift-library","swift3"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tigerpixel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-22T20:40:57.000Z","updated_at":"2019-10-01T19:32:41.000Z","dependencies_parsed_at":"2022-08-21T02:20:54.683Z","dependency_job_id":null,"html_url":"https://github.com/tigerpixel/Currier","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigerpixel%2FCurrier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigerpixel%2FCurrier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigerpixel%2FCurrier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigerpixel%2FCurrier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tigerpixel","download_url":"https://codeload.github.com/tigerpixel/Currier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243428434,"owners_count":20289317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curry","currying","fp","functional-programming","swift","swift-3","swift-framework","swift-language","swift-library","swift3"],"created_at":"2024-09-24T20:39:20.666Z","updated_at":"2025-10-24T09:41:43.370Z","avatar_url":"https://github.com/tigerpixel.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Currier\n\n[![Build Status](https://travis-ci.org/tigerpixel/Currier.svg?branch=master)](https://travis-ci.org/tigerpixel/Currier)\n[![Version](https://img.shields.io/cocoapods/v/Currier.svg?style=flat)](http://cocoapods.org/pods/Currier)\n[![Platform](https://img.shields.io/cocoapods/p/Currier.svg?style=flat)](http://cocoapods.org/pods/Currier)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![License](https://img.shields.io/cocoapods/l/Currier.svg?style=flat)](http://cocoapods.org/pods/Currier)\n\nCurrier transforms any Swift function into a curried version of that function. This is achieved by wrapping it in a simple 'curry' call.\n\nGiven the following function:\n\n```swift\nfunc myMultiply(first: Float, second: Int) -\u003e Double {\n    return Double(first) * Double(second)\n}\n```\n\nCurrier will produce a curried version:\n\n```swift\nlet curriedMultiply: (Float) -\u003e (Int) -\u003e Double = curry(myMultiply) // Currier used here!\n\nlet multiplyByTwo: (Int) -\u003e Double = curriedMultiply(2.0) // Partial application\n\nlet result: Double = multiplyByTwo(10)\n\nassert(20 == result) // Assertion true\n\n```\n\nThe previous example can be condensed down to the following:\n\n```swift\nlet sameResult = curry(myMultiply)(2.0)(10)\n```\n\nThe unit tests provide examples of calling the curry function using different numbers of parameters. The version of the function which takes two parameters is explicitly typed and commented.\n\n## Requirements\n\nThere are no external requirements for this project, just Swift.\n\n- iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+\n- Xcode 11+\n- Swift 5.1+\n\nFor older versions of Swift and Xcode, please see prior releases.\n\n## Installation\n\n### Swift Package Manager\n\nThe [Swift Package Manager](https://swift.org/package-manager) is the official tool for managing the distribution of Swift code. It is currently only available for all Apple platforms. It can also be used with Linux but this project does not fully support that at this point.\n\nIf you use it to manage your dependencies, simply add Currier to the dependencies value of your Package.swift file.\n\n```swift\ndependencies: [\n.package(url: \"https://github.com/tigerpixel/Currier.git\", from: \"1.3.0\")\n]\n```\n\n### Cocoapods\n\nCurrier is available through [CocoaPods](https://cocoapods.org/pods/Currier). To install it, simply add the following line to your Podfile:\n\n```ruby\npod \"Currier\"\n```\n\n### Carthage\n\nIf you use [Carthage](https://github.com/Carthage/Carthage) to manage your dependencies, simply add the following line to your Cartfile:\n\n```ogdl\ngithub \"tigerpixel/Currier\"\n```\n\nIf you use Carthage to build your dependencies, make sure you have added `Currier.framework` to the \"_Linked Frameworks and Libraries_\" section of your target, and have included them in your Carthage framework copying build phase.\n\n### Git Submodule\n\n1. Add the Currier repository as a [submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) of your application’s repository.\n1. Run `git submodule update --init --recursive` from within the Currier folder.\n1. Drag and drop `Currier.xcodeproj` into your application’s Xcode project or workspace.\n1. On the “General” tab of your application target’s settings, add `Currier.framework`. to the “Embedded Binaries” section.\n1. If your application target does not contain Swift code at all, you should also set the `EMBEDDED_CONTENT_CONTAINS_SWIFT` build setting to “Yes”.\n\n## MIT License\n\nCurrier is available under the MIT license. Details can be found within the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigerpixel%2Fcurrier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftigerpixel%2Fcurrier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigerpixel%2Fcurrier/lists"}