Awesome
<h1 align="center"><img alt="FKit" src="https://raw.githubusercontent.com/nullobject/fkit/master/logo.png" width="256px" /></h1>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!
Table of Contents
Getting Started
Node
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))
Browser
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>
Documentation
-
Presentation by Josh Bassett: Everyday Functional Programming in JavaScript
-
Article by Josh Bassett: Take Your Code to the Next Level with FKit
Examples
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:
Licence
FKit is licensed under the MIT licence. See the LICENCE file for more details.