y-combinator

1.0.1 • Public • Published

y-combinator

is one of the fixed-point combinators in untyped lambda calculus

All credits go to Haskell Curry.

Installation | Annotated source | Example | License

KLP Build Status

Installation

npm install y-combinator

Annotated source

I have no idea what is the Y combinator operator (maybe one day I will :P), I have just stolen the code from a guy called Douglas Crockford a.k.a Walker Texas JS.

Here it is the code, it is a function that consumes a function and returns a function, that consumes a function that returns a function ...

function Y(le) {
  return (function (f) {
    return f(f)
  }(function (f) {
    return le(function (x) {
      return f(f)(x)
    })
  }))
}

... ok, now export the Y function

module.exports = Y

Example

Q. What can I do with the Y Combinator?

A. Mmh, for example you can use it to get a factorial function, the following code works!

var Y = require('y-cominator')

var factorial = Y(fac => n => n <= 2 ? n : n * fac(n - 1))

console.log(factorial(5)) // 120

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.1
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.1
    2
  • 1.0.0
    1

Package Sidebar

Install

npm i y-combinator

Weekly Downloads

3

Version

1.0.1

License

MIT

Last publish

Collaborators

  • fibo