PHPackages                             grrr-amsterdam/garp-functional - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. grrr-amsterdam/garp-functional

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

grrr-amsterdam/garp-functional
==============================

Utility library embracing functional programming paradigms.

v6.3.0(1y ago)32118.3k↑291.7%4[1 issues](https://github.com/grrr-amsterdam/garp-functional/issues)[1 PRs](https://github.com/grrr-amsterdam/garp-functional/pulls)5BSD-3-ClausePHPPHP &gt;=7.2.0CI passing

Since Jan 30Pushed 6mo ago2 watchersCompare

[ Source](https://github.com/grrr-amsterdam/garp-functional)[ Packagist](https://packagist.org/packages/grrr-amsterdam/garp-functional)[ RSS](/packages/grrr-amsterdam-garp-functional/feed)WikiDiscussions main Synced 3d ago

READMEChangelogDependencies (3)Versions (61)Used By (5)

[![PHPUnit](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpunit.yml/badge.svg)](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpunit.yml) [![PHPCS](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpcs.yml/badge.svg)](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpcs.yml) [![PHPStan](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpstan.yml/badge.svg)](https://github.com/grrr-amsterdam/garp-functional/actions/workflows/phpstan.yml)

Garp Functional
===============

[](#garp-functional)

Utility library embracing functional programming paradigms.

[Documentation](https://grrr-amsterdam.github.io/garp-functional/)

Developed with ❤️ by [GRRR](https://grrr.nl)
--------------------------------------------

[](#developed-with-️-by-grrr)

- GRRR is a [B Corp](https://grrr.nl/en/b-corp/)
- GRRR has a [tech blog](https://grrr.tech/)
- GRRR is [hiring](https://grrr.nl/en/jobs/)
- [@GRRRTech](https://twitter.com/grrrtech) tweets

Philosophy
----------

[](#philosophy)

`Garp\Functional` is a practical functional library that strives to embrace functional paradigms.

- Functions are pure, referentially transparent, without side-effects.
- Data immutability is favored over mutating existing properties of given parameters.
- In general, functions are curried. Almost all of the functions in the library can be called partially applied, to a point where this makes sense.
- Function parameters are ordered to promote currying. Data is usually the last thing to go in, making every function a fine candidate to pass to native `array_map`, `array_filter` and the like, without having to create a closure around the call.
- Higher-order functions are provided to fill the gaps. Functions like `compose`, `partial`, `partial_right` or `not` are legos for you to use in your own implementation.
- Nothing is type-hinted too strictly. I don't care if you pass a string or an array to `prop`, as long as it allows accessing members thru bracket syntax `[]`, I'll allow it. Nothing irks me more about PHP than not being able to toss a `Traversable`object into the native `array_map`.
- Typeclasses are added, broadening the applicability of the functions. Next to primitives, they will now work with your objects as well, so long as they implement the right interface.

Usage
-----

[](#usage)

Installation:

```
composer require grrr-amsterdam/garp-functional

```

That'll do, all functions are available to you.

[Read the docs for a complete reference](https://grrr-amsterdam.github.io/garp-functional/)

Thanks
------

[](#thanks)

This library is inspired by beautiful languages like [Haskell](https://www.haskell.org/) and [Clojure](https://clojure.org/),
as well as the awesome [RamdaJS](https://ramdajs.com/) library.

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance55

Moderate activity, may be stable

Popularity41

Moderate usage in the ecosystem

Community24

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 74.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~52 days

Recently: every ~149 days

Total

56

Last Release

527d ago

Major Versions

v1.0.17 → v2.0.02018-07-04

v2.0.7 → v3.0.02019-02-06

v3.1.1 → v4.0.02019-04-28

v4.0.2 → v5.0.02020-12-03

v5.0.3 → v6.0.02023-06-07

PHP version history (3 changes)v0.1.0PHP &gt;=5.3.0

v3.0.0PHP &gt;=7.1.0

v6.0.0PHP &gt;=7.2.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/803176?v=4)[Harmen Janssen](/maintainers/harmenjanssen)[@harmenjanssen](https://github.com/harmenjanssen)

![](https://www.gravatar.com/avatar/cf6699e100eaa1b3fb2389b044e2365fb73add031d3e91ecf6cf4507c99643a5?d=identicon)[RamiroGrrr](/maintainers/RamiroGrrr)

---

Top Contributors

[![harmenjanssen](https://avatars.githubusercontent.com/u/803176?v=4)](https://github.com/harmenjanssen "harmenjanssen (171 commits)")[![martijngastkemper](https://avatars.githubusercontent.com/u/250662?v=4)](https://github.com/martijngastkemper "martijngastkemper (43 commits)")[![Hansterdam](https://avatars.githubusercontent.com/u/28623671?v=4)](https://github.com/Hansterdam "Hansterdam (5 commits)")[![MarcoWorms](https://avatars.githubusercontent.com/u/7863230?v=4)](https://github.com/MarcoWorms "MarcoWorms (3 commits)")[![schoenkaft](https://avatars.githubusercontent.com/u/1607628?v=4)](https://github.com/schoenkaft "schoenkaft (3 commits)")[![HammenWS](https://avatars.githubusercontent.com/u/1799286?v=4)](https://github.com/HammenWS "HammenWS (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")

---

Tags

curryingdata-lastfunctional-programminghacktoberfestphp

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/grrr-amsterdam-garp-functional/health.svg)

```
[![Health](https://phpackages.com/badges/grrr-amsterdam-garp-functional/health.svg)](https://phpackages.com/packages/grrr-amsterdam-garp-functional)
```

###  Alternatives

[talan-hdf/semantic-suggestion

TYPO3 extension for suggesting semantically related pages using advanced NLP and TF-IDF analysis

102.6k](/packages/talan-hdf-semantic-suggestion)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
