Bingo Functional Versions Save

A simple functional programming library for PHP

v2.3.0

9 months ago
  • Added keys, values, and size functions
  • Altered file topology in source code directories
  • Created separate entry points for library artifacts
  • Added ext-ds Vector support to Chemem\Bingo\Functional\Immutable\Collection
  • Infused extend, dropLeft, dropRight, flatten, filterM, filterDeep, foldM, mapM, mapMaybe, mapDeep, partition, partitionBy, partitionEithers, lefts, rights, foldRight, reduceRight, fromPairs, isArrayOf, head, last, unique, flatten, union, unionWith, zip, zipWith functions with object processing capabilities
  • Fixed anomalous assocPath function behavior
  • Added dot notation-encoded path parsing to pluckPath and assocPath functions
  • Enforced optional interoperability with ext-mbstring in the signatures of startsWith and endsWith
  • Conditioned subsumption of errors in readFile, writeFile, and appendFile functions in an IOException
  • Added workarounds for the deprecation of the use of end and reset - on objects in PHP 8.1 or newer - in head and last functions

v2.2.0

1 year ago
  • Added equals and paths helper functions
  • Added default parameters to head and last functions
  • Added _refobj internal function for object comparisons
  • Improved memoize function amenability to igbinary and apcu extensions

v2.1.0

1 year ago
  • Added page function
  • Fixed erroneous namespace in last function
  • Added kleisli composition function

v2.0.1

2 years ago
  • Modified cmatch function internals to better handle wildcard patterns

v2.0.0

2 years ago
  • Renamed namespace Chemem\Bingo\Functional\Algorithms to Chemem\Bingo\Functional
  • Moved Maybe and Either monad artifacts into Chemem\Bingo\Functional\Functors\Monads namespace
  • Modified patternMatch, cmatch, compact, keysExist, reject, max, min, firstIndexOf, fill, every, compact, mean, intersects, tail, zip helper functions
  • Modified pattern matching primitives namespaced under Chemem\Bingo\Functional\PatternMatching\Internal
  • Removed readIO, ask, Maybe::lift, Either::lift functions
  • Added lenses
  • Added transducer functions
  • Modified List and Writer monads
  • Added Functor, ApplicativeFunctor, and Monad interfaces
  • Modified intersects function in immutable Collection
  • Renamed match to cmatch
  • Added liftM monad helper function
  • Added K function (K-combinator)
  • Revamped project test suite

v1.13.0

3 years ago
  • Modified putStr, getLine, putStrLn, putChar IO helper functions

  • Added default values to pick and pluck functions

  • Added internal functions namespaced under Chemem\Bingo\Functional\Algorithms\Internal

  • Modified some list/collection primitives to work on objects as well as hashtables

  • Infused Collection with Transient properties

  • Added mergeN() Collection method

  • Modified any() and every() Collection methods

  • Added ImmutableDataStructure and ImmutableList interfaces

  • Added a Tuple immutable structure

  • Added mapM() Monad function

  • Replaced original pattern-matching algorithm with that in the functional-php/pattern-matching library

  • Added new helper functions

  • Jettisoned docs folder. Moved docs site to new address

New Helper Functions

  • intersperse()

  • difference()

  • countOfKey()

  • countOfValue()

  • renameKeys()

New Monadic Helper functions

  • mapM()

Modified functions

  • map()

  • filter()

  • fold()

  • reject()

  • pluck()

  • pick()

  • any()

  • every()

  • partial()

  • indexOf()

  • indexesOf()

  • addKeys()

  • omit()

  • partialRight()

  • dropLeft()

  • dropRight()

  • mapDeep()

  • filterDeep()

v1.12.0

5 years ago
  • Removed function parameter from zip function

  • Created Monadic interface for Monads

  • Added new helper functions

  • Added new Monad helper functions

  • Added APCU-supported functionality to memoize function

  • Added constant static function definitions for Monadic types

  • Added new Collection functions

New Helper functions

  • toWords()

  • slugify()

  • truncate()

  • intersects()

  • composeRight()

  • filePath()

  • union()

  • unionWith()

  • zipWith()

New Monadic Helper functions

  • filterM()

  • foldM()

New Collection functions

  • fetch()

  • contains()

  • unique()

  • head()

  • tail()

  • last()

  • intersects()

  • implode()

  • offsetGet()

v1.11.0

5 years ago
  • Modified pattern matching algorithm to enable usage of wildcards in patterns

  • Modified State, List, Writer, and Reader monads

  • Added monadic helper functions

  • Added Applicative helper functions

  • Added bind and of methods to Either and Maybe type classes

  • Added flip helper function

  • Added liftIn function

New Applicative Helper functions

  • Applicative\pure()

  • Applicative\liftA2()

New Monadic Helper functions

  • mcompose()

  • bind()

  • IO\IO

  • IO_print()

  • IO\getChar()

  • IO\putChar()

  • IO\putStr()

  • IO\getLine()

  • IO\interact()

  • IO\readFile()

  • IO\writeFile()

  • IO\appendFile()

  • IO\readIO()

  • State\state()

  • State\gets()

  • State\modify()

  • State\evalState()

  • State\execState()

  • State\put()

  • State\runState()

  • ListMonad\fromValue()

  • ListMonad\concat()

  • ListMonad\prepend()

  • LIstMonad\append()

  • ListMonad\head()

  • ListMonad\tail()

  • Reader\reader()

  • Reader\runReader()

  • Reader\mapReader()

  • Reader\withReader()

  • Reader\ask()

  • Writer\writer()

  • Writer\runWriter()

  • Writer\execWriter()

  • Writer\mapWriter()

New union type helper functions

  • Either\either()

  • Either\isLeft()

  • Either\isRight()

  • Either\lefts()

  • Either\rights()

  • Either\fromLeft()

  • Either\partitionEithers()

  • Maybe\maybe()

  • Maybe\isJust()

  • Maybe\isNothing()

  • Maybe\fromJust()

  • Maybe\fromNothing()

  • Maybe\maybeToList()

  • Maybe\listToMaybe()

  • Maybe\catMaybes()

  • Maybe\mapMaybe()

v1.10.0

5 years ago
  • Added object matching capability to patternMatch

  • Modified patternMatch array matching to give more concise match results

  • Jettisoned reverse function

  • Added Immutable collections to library

New Helper functions

  • mapDeep()
  • omit()
  • addKeys()
  • last()
  • reject()
  • mean()

Modified the following functions

  • patternMatch()

v1.9.0

5 years ago
  • Added more robust pattern matching to library

Modified the following function(s)

  • dropLeft()
  • dropRight()
  • map()
  • filter()

Added new helper function(s)

  • min()
  • max()
  • any()
  • every()
  • where()
  • groupBy()
  • foldRight()
  • toException()
  • reduceRight()