callgebra

2.1.0 • Public • Published

Callgebra

The little algebra of callbacks.

Introduction

This package exports functions for composing callbacks. You can read about the idea in my Medium post about composable callbacks.

Usage

Node

$ npm install --save callgebra

On Node 12 and up, this module can be loaded directly with import or require. On Node versions below 12, require or the esm-loader can be used.

import {of, callback} from 'callgebra';
callback (console.log) (of (42));

Deno and Modern Browsers

You can load the EcmaScript module from various content delivery networks:

Old Browsers and Code Pens

There's a UMD file included in the NPM package, also available via jsDelivr: https://cdn.jsdelivr.net/npm/callgebra@2.1.0/dist/umd.js

This file adds flutureProject to the global scope, or use CommonJS/AMD when available.

const {of, callback} = require ('callgebra');
callback (console.log) (of (42));

API

type Callback a b = (b -> a) -> a

of :: a -⁠> Callback b a

Creates a callback for a given return value.

chain :: (a -⁠> Callback c b) -⁠> Callback c a -⁠> Callback c b

Sequence two callback-accepting functions.

map :: (a -⁠> b) -⁠> Callback c a -⁠> Callback c b

Modify the return value of a callback.

ap :: Callback c (a -⁠> b) -⁠> Callback c a -⁠> Callback c b

Apply the function returned by one callback to the value returned by another.

callback :: (a -⁠> b) -⁠> Callback b a -⁠> b

Given a function and a Callback, runs the Callback using the function.

Readme

Keywords

Package Sidebar

Install

npm i callgebra

Weekly Downloads

10

Version

2.1.0

License

MIT

Unpacked Size

9.98 kB

Total Files

6

Last publish

Collaborators

  • avaq
  • dicearr
  • davidchambers