Nuns Practicing Misanthropy

    church

    2.1.1 • Public • Published

    church

    npm version Build Status

    Church encoding utility library for JavaScript

    Why?

    I built this library mostly as a learning exercise, but the code is also available as an npm module that can be consumed and used to build JavaScript applications using basically nothing but functions. I'm not sure why you would want to do that though!

    What?

    Church encoding is a way of encoding data using only functions. For instance, we can use functions to represent, booleans, numerals and lists. Higher-order functions are all you need for Turing completeness.

    How?

    Check out the docs.

    Install

    npm i church or yarn add church.

    Examples

    import {
      decodeList,
      decodeNumeral,
      encodeList,
      encodeNumeral,
      five,
      If,
      lt,
      map,
      mult,
      one,
      range,
      three,
      two,
    } from 'church'
     
    const twoFourSix = map(mult(two))(range(one)(three))
    // => Church encoded list of [two four six]
     
    const twoFourSixJs = decodeList(twoFourSix).map(decodeNumeral)
    // => [2, 4, 6] (standard JS array of standard JS numbers)
     
    encodeList(twoFourSixJs.map(encodeNumeral))
    // => Church encoded list of [two four six] again
     
    map(x => If(lt(x)(five))(five)(x))(twoFourSix)
    // => Church encoded list of [five five six]

    Resources

    Install

    npm i church

    DownloadsWeekly Downloads

    1

    Version

    2.1.1

    License

    MIT

    Unpacked Size

    54.4 kB

    Total Files

    25

    Last publish

    Collaborators

    • benji6