1 | - [tiny-cps](#tiny-cps)
|
2 | - [CPS functions](#cps-functions)
|
3 | * [Why?](#why)
|
4 | * [Advanced composability](#advanced-composability)
|
5 | * [What is new here?](#what-is-new-here)
|
6 | + [Variadic input and output](#variadic-input-and-output)
|
7 | + [Full power of multiple outputs streams](#full-power-of-multiple-outputs-streams)
|
8 | + [Functional progamming paradigm](#functional-progamming-paradigm)
|
9 | + [Lazy or eager?](#lazy-or-eager)
|
10 | + [Differences with Haskell](#differences-with-haskell)
|
11 | + ["Do less" is a feature](#do-less-is-a-feature)
|
12 | * [Terminology](#terminology)
|
13 | * [Using CPS functions](#using-cps-functions)
|
14 | * [What about Callback Hell?](#what-about-callback-hell)
|
15 | * [Asynchronous iteration over array](#asynchronous-iteration-over-array)
|
16 | - [Examples of CPS functions](#examples-of-cps-functions)
|
17 | * [Promise producers](#promise-producers)
|
18 | * [Promises](#promises)
|
19 | * [Node API](#node-api)
|
20 | * [HTTP requests](#http-requests)
|
21 | * [Database Access](#database-access)
|
22 | * [Middleware e.g. in Express or Redux](#middleware-eg-in-express-or-redux)
|
23 | * [Web Sockets](#web-sockets)
|
24 | * [Stream libraries](#stream-libraries)
|
25 | + [Pull Streams](#pull-streams)
|
26 | + [Flyd](#flyd)
|
27 | * [Event aggregation](#event-aggregation)
|
28 | - [Comparison with Promises and Callbacks](#comparison-with-promises-and-callbacks)
|
29 | * [Returning results](#returning-results)
|
30 | * [Chaining](#chaining)
|
31 | * [Asynchronous composition](#asynchronous-composition)
|
32 | * [Error handling](#error-handling)
|
33 | * [Signatures](#signatures)
|
34 | * [Standardization](#standardization)
|
35 | - [Functional and Fluent API](#functional-and-fluent-api)
|
36 | * [Conventions](#conventions)
|
37 | * [CPS.map](#cpsmap)
|
38 | + [Mapping over single function](#mapping-over-single-function)
|
39 | + [Mapping over multiple functions](#mapping-over-multiple-functions)
|
40 | + [Map taking multiple arguments](#map-taking-multiple-arguments)
|
41 | + [Functor laws](#functor-laws)
|
42 | + [CPS.of](#cpsof)
|
43 | * [CPS.chain](#cpschain)
|
44 | + [Transforming multiple arguments into multiple arguments](#transforming-multiple-arguments-into-multiple-arguments)
|
45 | + [Why is it called `chain`?](#why-is-it-called-chain)
|
46 | + [Composing multiple outputs](#composing-multiple-outputs)
|
47 | + [Passing multiple CPS functions to `chain`](#passing-multiple-cps-functions-to-chain)
|
48 | + [Monadic laws](#monadic-laws)
|
49 | - [Associativity law](#associativity-law)
|
50 | - [Identity laws](#identity-laws)
|
51 | * [Application of `chain`: Turn Node API into Promise style callbacks](#application-of-chain-turn-node-api-into-promise-style-callbacks)
|
52 | * [CPS.ap](#cpsap)
|
53 | + [Running CPS functions in parallel](#running-cps-functions-in-parallel)
|
54 | + [Lifting functions of multiple parameters](#lifting-functions-of-multiple-parameters)
|
55 | - [Promise.all](#promiseall)
|
56 | - [Usage notes](#usage-notes)
|
57 | + [Applying multiple functions inside `ap`](#applying-multiple-functions-inside-ap)
|
58 | + [Applicative laws](#applicative-laws)
|
59 | * [CPS.merge](#cpsmerge)
|
60 | + [Relation with Promise.race](#relation-with-promiserace)
|
61 | + [Commutative Monoid](#commutative-monoid)
|
62 | * [CPS.filter](#cpsfilter)
|
63 | + [Filtering over multiple functions](#filtering-over-multiple-functions)
|
64 | + [Implementation via `chain`](#implementation-via-chain)
|
65 | * [CPS.scan](#cpsscan) |
\ | No newline at end of file |