🍘 Lightweight functional programming library
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
docs
media
src
.editorconfig
.gitattributes
.gitignore
.npmrc
.travis.yml
code-of-conduct.md
index.js
license.md
package.json
readme.md
repl.js

readme.md

Arare

🍘 Lightweight auto-curried functional programming library

Header

Build Status

Description

Lightweight and without any external dependencies arare enables you to write tacit, point-free, declarative & clean code while avoiding side-effects and mutations. Internally the library itself, comprised of over 200 functions, follows the functional programming paradigm and is materialized using fundamental functional qualities such as currying, recursion, tail calls, high-order functions, referential transparency, side-effects elimination and function composition. Additionally, arare utilizes automatic variadic currying for its functions, thus allowing the user to write more flexible, practical & minimal code, compared to regular strict currying. Finally, the library comes with a build-in interactive REPL environment, useful for directly inspecting and experimenting with all available modules without leaving the console.

Please note that project is in its early days and that it is currently under active development.

Come over to Gitter or Twitter to share your thoughts on the project.

Highlights

  • Over 200 available functions
  • Build-in interactive REPL
  • Point-free & tacit
  • High-order & pure functions
  • Automatic variadic currying
  • Declarative & minimal syntax
  • Side-effects & mutations free
  • Lightweight with zero dependencies
  • Build with functional code
  • Actively developed

Contents

Install

npm install arare

Usage

Import arare and start using directly any of the available modules.

const A = require('arare')

A.map(A.add(10), A.range(1, 4, 1))
//=> [11, 12, 13]

Alternatively, select and import only the modules that you need.

const {add, map, range} = require('arare')

map(add(10), range(1, 4, 1))
//=> [11, 12, 13]

REPL

Initially, install arare globally in order to be able to access the REPL environment.

npm install -g arare

To launch the REPL simply type arare from anywhere in your console.

arare # launch REPL
REPL

API

The following lists contain all available functions grouped into categories according to the type of their respective returning value.

An alphabetically ordered list of all available functions can be found here.

Any

Functions whose return value varies according to their input.

Array

Functions whose return value is an array.

Boolean

Functions whose return value is a boolean.

Function

Functions whose return value is a function.

Number

Functions whose return value is a number.

String

Functions whose return value is a string.

Object

Functions whose return value is a plain object.

Undefined

Functions whose return value is undefined.

Development

  • Fork the repository and clone it to your machine
  • Navigate to your local fork: cd arare
  • Install the project dependencies: npm install or yarn install
  • Lint the code and run the tests: npm test or yarn test

Team

License

MIT