SkillAgentSearch skills...

Church

:church: Church Encoding in JS

Install / Use

/learn @benji6/Church
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

church

npm version CI

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

View on GitHub
GitHub Stars127
CategoryDevelopment
Updated28d ago
Forks10

Languages

JavaScript

Security Score

85/100

Audited on Feb 28, 2026

No findings