PhpSlang is a PHP library aiming to fill the gaps between PHP and classical functional languages. It provides constructs optimizing your work and letting you develop with a purely functional style.
Watch us at https://twitter.com/_phpslang
- Option monad
- Either monad
- Copy trait
- Immutable List collection
- Trampolines
- Pattern matching
- Immutable HashMap collections
- Immutable Set collections
- Extractors
- Try monad
- Future monad
- Parallel immutable List collection
- Parallel immutable HashMap collection
- Parallel immutable Set collection
- Lazy monad
- Validation functor
- Property testing
- Numeric type with infinite precision
- Memoization
- Chainable\pipe monad
- Convenient enumeration
Just feel free to post your pull requests on GitHub.
Few rules that can make your pull request pass a code review:
- Do not add any dependencies (we want to keep this lib with only one dependency - PHP7)
- Please use descriptive commit titles
- Squash your commits - we prefer to have one commit per feature, even if it becomes a bulky commit
- You don't have to keep to the road map - it's for us, not for a community
Clone this repository
git clone git@github.com:php-slang/php-slang.git
Install dependiences
composer install --dev
Run PHPUnit
phpunit