Functional library for PHP
PHP
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmarks
docs
src
tests
.editorconfig
.gitignore
.scrutinizer.yml
LICENSE
README.md
build.xml
composer.json
phpbench.json
phpunit.xml.dist

README.md

Prelude

Scrutinizer Code Quality Code Coverage Build Status

Install

composer require sergiors/prelude "dev-master"

How to use

use function Prelude\cond;
use function Prelude\equals;
use function Prelude\always;

$fn = cond([
    [equals(0), always('water freezes at 0°C')],
    [equals(100), always('water boils at 100°C')],
    [always(true), function ($temp) {
        return 'nothing special happens at '.$temp.'°C';
    }]
]);

echo $fn(0); // => water freezes at 0°C
echo $fn(50); // => nothing special happens at 50°C
echo $fn(100); // => water boils at 100°C
use function Prelude\has;

$hasName = has('name');
echo $hasName(['name' => 'Jimi']); // => true
echo $hasName([]); // => false
use const Prelude\id;
use const Prelude\isEmpty;
use function Prelude\ifElse;
use function Prelude\always;

$fn = ifElse(isEmpty)
    (always(true))
    (always(false));
echo $fn([]); // => true
echo $fn(null); // => true
echo $fn(false); // => true
echo $fn('James'); // => false
use function Prelude\head;

echo head([1, 2, 3]); // => 1
use function Prelude\tail;

echo tail([1, 2, 3]); // => [2, 3]

API

Full API Documentation

Thanks

Marcelo Camargo

License

MIT