Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Functional Programming
  3. omg-curry

omg-curry

JavaScript0.0.1

A feature-complete JavaScript library for currying and uncurrying functions with infinite and lazy evaluation support.

GitHubGitHub
135 stars6 forks0 contributors

What is omg-curry?

omg-curry is a JavaScript library that provides advanced currying and uncurrying utilities for functional programming. It transforms fixed-arity functions into curried versions that accept arguments incrementally, and supports infinite currying and lazy evaluation for flexible and efficient argument handling.

Target Audience

JavaScript developers working with functional programming patterns, especially those building libraries, utilities, or applications that benefit from partial application and controlled argument evaluation.

Value Proposition

Developers choose omg-curry for its feature completeness, including infinite currying, lazy evaluation, and bidirectional transformations between curried and fixed functions, offering more control and flexibility than basic currying implementations.

Overview

Curry All Code

Use Cases

Best For

  • Transforming fixed-arity functions into curried versions for partial application
  • Creating infinite currying functions for flexible argument handling
  • Implementing lazy evaluation in functional pipelines to optimize performance
  • Converting curried functions back to fixed-arity functions for compatibility
  • Building functional utilities or libraries that require advanced currying capabilities
  • Simplifying complex argument patterns in mathematical or algorithmic operations

Not Ideal For

  • Projects not using functional programming paradigms, as the library adds unnecessary abstraction over imperative code
  • Simple applications where basic currying with JavaScript's bind or lighter libraries like Lodash suffices
  • Teams needing extensive documentation, tutorials, or community support for quick onboarding
  • Performance-sensitive environments where the overhead of lazy evaluation or infinite currying could impact speed

Pros & Cons

Pros

Bidirectional Function Transformation

Supports converting fixed-arity functions to curried versions and back via fixed and deCurry methods, enabling flexible function composition as shown in the usage examples.

Infinite Currying Flexibility

Allows creation of curried functions that accept unlimited arguments until explicitly terminated, useful for dynamic and flexible argument handling in functional pipelines.

Lazy Evaluation Optimization

Offers lazy curry option that defers evaluation until all arguments are supplied, optimizing performance for complex or expensive operations, as detailed in the operators section.

Cons

Complex API Surface

Includes multiple methods like fixed, op, and deCurry with configurable arity and lazy flags, which can be confusing without prior functional programming expertise.

Sparse Documentation

README provides basic examples but lacks in-depth guides on error handling, edge cases, TypeScript support, or real-world use cases beyond simple snippets.

Niche Functional Focus

Primarily targets developers deep into functional programming, making it less practical for general-purpose or mixed-paradigm codebases where simpler alternatives exist.

Frequently Asked Questions

Quick Stats

Stars135
Forks6
Contributors0
Open Issues1
Last commit5 years ago
CreatedSince 2020

Tags

#functional-programming#currying#npm-package#nodejs#utility-library#javascript#browser-support#lazy-evaluation

Built With

J
JavaScript
N
Node.js

Included in

Functional Programming6.0k
Auto-fetched 17 hours ago

Related Projects

RamdaRamda

:ram: Practical functional Javascript

Stars24,067
Forks1,439
Last commit6 days ago
ts-patternts-pattern

🎨 The exhaustive Pattern Matching library for TypeScript, with smart type inference.

Stars15,091
Forks170
Last commit12 days ago
effect-tseffect-ts

Build production-ready applications in TypeScript

Stars14,970
Forks628
Last commit23 hours ago
Most.jsMost.js

Ultra-high performance reactive programming

Stars3,491
Forks199
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub