# yafu

> Functional programming experimentation

Latest version **2.2.0** (published 2025-11-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install yafu
pnpm add yafu
yarn add yafu
bun add yafu
```

## Health

**Score 60/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.2.0 |
| Published | 2025-11-13 |
| First published | 2016-03-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 291.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Ludwig Magnusson |
| Maintainers | theludd |

## Links

- npm: https://www.npmjs.com/package/yafu
- Repository: https://github.com/TheLudd/yafu
- Homepage: https://github.com/TheLudd/yafu#readme
- Issues: https://github.com/TheLudd/yafu/issues
- npm.io page: https://npm.io/package/yafu

## Dependencies (1)

- [@yafu/curry](https://npm.io/package/@yafu/curry.md) ^1.3.1

## Recent versions

- 2.2.0 (latest) — 2025-11-13
- 2.1.4 — 2023-09-02
- 2.1.3 — 2023-08-31
- 2.1.2 — 2023-08-26
- 2.1.1 — 2023-06-02
- 2.1.0 — 2023-04-13
- 2.0.14 — 2023-01-01
- 2.0.13 — 2022-12-22
- 2.0.12 — 2022-11-26
- 2.0.11 — 2022-11-24
- 2.0.10 — 2022-11-24
- 2.0.9 — 2022-11-24
- 2.0.8 — 2022-11-22
- 2.0.7 — 2022-11-22
- 2.0.6 — 2022-11-22
- … 30 more at https://npm.io/package/yafu/versions

## README

# yafu
Yet another functional utility.

## Purpose
yafu is a functional programming library that supplies basic useful functions for JavaScript programming.
Very similar to [Ramda](http://ramdajs.com) but with a slightly different philosophy.

Key points:
  * [`curry`](https://github.com/TheLudd/yafu-mono/blob/master/modules/yafu/lib/curry.js) works a bit differently than in many other JavaScript libraries,
  specifically when it is the case that a curried function receives more agruments than it has declared
  * each function *really* only does one thing and one thing only
  * no checking of types inside functions
  * no varardic funtions
  * no inspection of `arguments` (exception is the `curry` function)
  * no return of `null` or `undefined`

The idea is to be strict on these rules for the sake of being strict. This in order to see if a library like
this results in better code in applications and programs where it is used.

## API
For now, check the `lib` folder for the available functions. Each file should contain documentation. Files starting with underscore are
private functions and not a part of the public API.

---
_Source: https://npm.io/package/yafu · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
