Need help with omg-curry?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Debdut
132 Stars 6 Forks 24 Commits 1 Opened issues

Description

Curry All Code

Services available

!
?

Need anything else?

Contributors list

# 391,403
CSS
HTML
React
robinho...
19 commits
# 568,202
JavaScr...
CSS
1 commit

omg-curry

Generic badge Generic badge

Twitter Twitter

Feature Complete Curry Library

Logo

Features

  • Fixed Functions ⟶ Curry
  • Operators ⟶ Curry
  • Curry ⟶ Fixed Functions
  • Infinite Currying
  • Lazy Curry

Installation

npm install omg-curry

Usage

const curry = require('omg-curry')

Fixed Functions

Convert a function into curry

function map (fn, default, list) {}

const mapK = curry.fixed(map) const square = a => a**2

mapK(square)(0)([1, 2, 3, 4, null]) // [1, 4, 9, 16, 0]

// or reuse

const mapSquare = mapK(square)(0) mapSquare([1, 2, 3, 4, null]) // [1, 4, 9, 16, 0]

Operators

Create N-length Curry from an operator

const add = (a, b) => a+b
const add4 = curry.op(add, 4)

add4(1)(3)(5)(10) add4(1)(3,5)(10) add4(1,3,5,10) // 19

const addInfty = curry.op(add, Infinity)

// () to end addInfty(1)(1)(1,1)(1)(1)() // 6

const add4Lazy = curry.op(add, 4, true) // same as add4 buts evaluates at the end

const altSum = (a, b, i) => a + (-1)**i * b
const altSum5 = curry.op(altSum, 5)
// (a, b, c, d, e) => a - b + c - d + e

altSum5(1)(2)(3)(4,5) // 1 - 2 + 3 - 4 + 5 // 3

DeCurry

Convert Curry to Fixed Functions

const add4Fixed = curry.deCurry(add4Curry)

WTF is Curry?

A Curry takes arguments one by one unlike functions which take all arguments at once.

// Function
add(1, 2, 3)
// 6

// Curry add(1)(2)(3) // 6

Support

  • Browser
  • Node

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.