Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

nullobject/fkit

A functional programming toolkit for JavaScript.

nullobject/fkit.json
{
"createdAt": "2014-08-19T06:52:00Z",
"defaultBranch": "master",
"description": "A functional programming toolkit for JavaScript.",
"fullName": "nullobject/fkit",
"homepage": "https://fkit.joshbassett.info",
"language": "JavaScript",
"name": "fkit",
"pushedAt": "2021-08-31T01:39:39Z",
"stargazersCount": 585,
"topics": [
"fp",
"functional",
"functional-programming",
"javascript",
"library"
],
"updatedAt": "2025-08-27T12:06:17Z",
"url": "https://github.com/nullobject/fkit"
}

FKit

Build Status

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!

  • [Getting Started]!(#getting-started)
    • [Node]!(#node)
    • [Browser]!(#browser)
  • [Documentation]!(#documentation)
  • [Examples]!(#examples)
  • [Licence]!(#licence)

Install the npm package:

Terminal window
> 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>

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.