- Added
jsonDecode
andextract
functions - Reworked internals of
partition
,slugify
, andpartitionBy
functions - Infused
startsWith
,endsWith
,contains
, andtruncate
functions with multi-byte string processing capabilities - Added iteration modes to
filter
andreject
functions - Added ext-eio-powered non-blocking file operations for IO monad
- Replaced pattern matching parser in
functional-php/pattern-matching
with custom parser - Replaced cons matching function calls in
cmatch
with custom parser
- Added
keys
,values
, andsize
functions - Altered file topology in source code directories
- Created separate entry points for library artifacts
- Added
ext-ds
Vector support toChemem\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
andassocPath
functions - Enforced optional interoperability with
ext-mbstring
in the signatures ofstartsWith
andendsWith
- Conditioned subsumption of errors in
readFile
,writeFile
, andappendFile
functions in anIOException
- Added workarounds for the deprecation of the use of
end
andreset
- on objects in PHP 8.1 or newer - inhead
andlast
functions
- Added
equals
andpath
helper functions - Added default parameters to
head
andlast
functions - Added
_refobj
internal function for object comparisons - Improved
memoize
function amenability toigbinary
andapcu
extensions
- Added
page
function - Fixed erroneous namespace in
last
function - Added
kleisli
composition function
- Modified
cmatch
function internals to better handle wildcard patterns
- Renamed namespace
Chemem\Bingo\Functional\Algorithms
toChemem\Bingo\Functional
- Moved
Maybe
andEither
monad artifacts intoChemem\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
, andMonad
interfaces - Modified
intersects
function in immutableCollection
- Renamed
match
tocmatch
- Added
liftM
monad helper function - Added
K
function (K-combinator) - Revamped project test suite
- Modified
putStr
,getLine
,putStrLn
,putChar
IO helper functions - Added default values to
pick
andpluck
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
andevery
Collection methods - Added
ImmutableDataStructure
andImmutableList
interfaces - Added a Tuple immutable structure
- Added
mapM
Monad function - Modified
map
,filter
,fold
,reject
,pluck
,pick
,any
,every
,partial
,indexOf
,indexesOf
,addKeys
,omit
,partialRight
,dropLeft
,dropRight
,mapDeep
, andfilterDeep
helper functions - Replaced original pattern-matching algorithm with that in the functional-php/pattern-matching library
- Added
intersperse
,difference
,countOfKey
,countOfValue
, andrenameKeys
functions - Jettisoned docs folder. Moved docs site to new address
- Removed function parameter from zip function
- Created Monadic interface for Monads
- Added
toWords
,slugify
,truncate
,intersects
,composeRight
,filePath
,union
,unionWith
, andzipWith
helper functions - Added
filterM
andfoldM
Monad helper functions - Added APCU-supported functionality to memoize function
- Added constant static function definitions for Monadic types
- Added
fetch
,contains
,unique
,head
,tail
,last
,intersects
,implode
, andoffsetGet
Collection functions
- Modified pattern matching algorithm to enable usage of wildcards in patterns
- Modified
State
,List
,Writer
, andReader
monads - Added
pure
,liftA2
Applicative helper functions - Added
bind
andof
methods to Either and Maybe type classes - Added
mcompose
,bind
,IO
,_print
,getChar
,putChar
,putStr
,getLine
,interact
,readFile
,writeFile
,appendFile
,readIO
,state
,gets
,modify
,evalState
,execState
,put
,runState
,fromValue
,concat
,prepend
,append
,head
,tail
,reader
,runReader
,either
,isLeft
,isRight
,lefts
,rights
,fromLeft
,partitionEithers
,maybe
,isJust
,isNothing
,fromJust
,fromNothing
,maybeToList
,listToMaybe
,catMaybes
,mapMaybe
,mapReader
,withReader
,ask
,writer
,runWriter
,execWriter
, andmapWriter
monad functions - Added
flip
helper function - Added
letIn
function
- Added immutable collections
- Added object matching capability to
patternMatch
- Modified
patternMatch
array matching to give more concise match results - Jettisoned reverse function
- Added
mapDeep
,omit
,addKeys
,last
,reject
, andmean
helper functions
- Refined pattern matching algorithm
- Modified
dropLeft
,dropRight
,map
, andfilter
helper functions - Added
every
,any
,where
,reduceRight
,curryRight
,foldRight
,min
,max
,groupBy
, andpatternMatch
helper functions
- Added pattern matching to library
- Removed
invalidArrayKey
,invalidArrayValue
,emptyArray
, andmemoizationError
callback functions - Modified
map
,pick
,fold
,pluck
,reduce
,filter
,memoize
, andisArrayOf
helper functions - Added
fill
,partial
,indexOf
,reverse
,toPairs
,fromPairs
,match
helper functions
- Modified
orElse
methods in Maybe and Either monads - Added
flatMap
method to State and List monads
- Modified throttle function to accept multiple arguments
- Added type signatures and doc blocks
- Added immutable definition of
concat
- Added
ListMonad
- Modified
filter
function - Changed parameter order of the
reduce
function
- Added
map
,filter
,fold
, andreduce
helper functions
- Added callback signatures to
pluck
,pick
,isArrayOf
, andmemoize
helper functions - Replaced
extractErrorMessage
callback function - Added
IO
,Reader
,Writer
, andState
monads - Added
concat
andthrottle
helper functions - Added
invalidArrayKey
,invalidArrayValue
,emptyArray
, andmemoizationError
callback functions - Jettisoned
Monad
- Added
filter
andflatMap
functions toMonad
- Fixed partialRight behavior in
partialLeft
- Fixed error with mixed type arrays in
isArray
helper function
- Added
isArrayOf
,partialRight
, andpartialLeft
helper functions - Added
TransientMutator
trait - Jettisoned
partial
helper function
- Added
head
,tail
, andpartition
helper functions
- First production release
- Added
compose
,constantFunction
,curry
,curryN
,extend
,identity
,memoize
,partial
,pick
,pluck
,zip
, andunzip
helper functions - Added
Either
,Maybe
,CollectionApplicative
, andMonad
typeclasses