A functional programming toolkit for JavaScript.
FKit (pronounced eff-kit) is a functional
programming toolkit for
JavaScript. It provides many functions for solving common problems with
functions, objects, arrays, and strings. It aims to provide reusable building
blocks while maintaining a laser focus on everyday utility.
Features:
Why reinvent the wheel? FKit provides many functions for solving everyday
problems to do with functions, arrays, objects, and strings.
FKit treats both strings and arrays as lists, which means you can apply the
same list functions to both strings and arrays (e.g. head
, tail
, map
,
filter
, fold
, etc).
Most FKit functions are already
curried by default, so you can
partially apply them
wherever you need to.
The ordering of arguments to FKit functions is carefully designed to be more
natural, this makes them highly
composable.
It’s very compact, roughly 3 KB when minified and gzipped!
Install the npm package:
> npm install fkit
Import just the functions you need:
import { add } from 'fkit'
console.log(add(1, 2))
Or import the whole library:
import * as F from 'fkit'
console.log(F.add(1, 2))
The easiest way to start using FKit in your browser is to include it with a
<script>
tag in your HTML file:
<script src="https://unpkg.com/fkit/dist/fkit.min.js"></script>
Presentation by Josh Bassett: Everyday Functional Programming in
JavaScript
Article by Josh Bassett: Take Your Code to the Next Level with
FKit
Sum the numbers in a list:
import { sum } from 'fkit'
sum([1, 2, 3]) // 6
Stash a string:
import { map, surround } from 'fkit'
map(surround('{', '}'), 'hello') // '{h}{e}{l}{l}{o}'
Intersperse the numbers in a list with another number:
import { intersperse } from 'fkit'
intersperse(4, [1, 2, 3]) // [1, 4, 2, 4, 3]
Filter the numbers in a list where 1 <= n <= 5:
import { between } from 'fkit'
[1, 2, 3, 4, 5].filter(between(2, 4)) // [2, 3, 4]
Calculate the Cartesian product of two lists:
import { cartesian } from 'fkit'
cartesian([1, 2], [3, 4]) // [[1, 3], [1, 4], [2, 3], [2, 4]]
Calculate the permutations of a list:
import { permutations } from 'fkit'
permutations('abc') // ['abc', 'bac', 'cba', 'bca', 'cab', 'acb']
Check out some more examples:
FKit is licensed under the MIT licence. See the
LICENCE file for
more details.