- Added the following function(s)
Chemem\Bingo\Functional\listFromPaths
- Added nullable type definitions to arguments in the following functions
Chemem\Bingo\Functional\pathsChemem\Bingo\Functional\toExceptionChemem\Bingo\Functional\Functors\Monads\bind
- Reworked the internals of the following functions
Chemem\Bingo\Functional\memoizeChemem\Bingo\Functional\headChemem\Bingo\Functional\lastChemem\Bingo\Functional\indexOfChemem\Bingo\Functional\intersectsChemem\Bingo\Functional\isArrayOfChemem\Bingo\Functional\omitChemem\Bingo\Functional\whereChemem\Bingo\Functional\keysExistChemem\Bingo\Functional\anyChemem\Bingo\Functional\assocPathChemem\Bingo\Functional\everyChemem\Bingo\Functional\fromPairsChemem\Bingo\Functional\hasChemem\Bingo\Functional\tailChemem\Bingo\Functional\intersperseChemem\Bingo\Functional\Functors\Monads\mapMChemem\Bingo\Functional\Functors\Monads\filterMChemem\Bingo\Functional\Functors\Monads\foldM
- Improved iteration patterns in functions subsumed in the following classes
Chemem\Bingo\Functional\Immutable\CollectionChemem\Bingo\Functional\Immutable\Tuple
- Added
jsonDecodeandextractfunctions - Reworked internals of
partition,slugify, andpartitionByfunctions - Infused
startsWith,endsWith,contains, andtruncatefunctions with multi-byte string processing capabilities - Added iteration modes to
filterandrejectfunctions - Added ext-eio-powered non-blocking file operations for IO monad
- Replaced pattern matching parser in
functional-php/pattern-matchingwith custom parser - Replaced cons matching function calls in
cmatchwith custom parser
- Added
keys,values, andsizefunctions - Altered file topology in source code directories
- Created separate entry points for library artifacts
- Added
ext-dsVector 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,zipWithfunctions with object processing capabilities - Fixed anomalous
assocPathfunction behavior - Added dot notation-encoded path parsing to
pluckPathandassocPathfunctions - Enforced optional interoperability with
ext-mbstringin the signatures ofstartsWithandendsWith - Conditioned subsumption of errors in
readFile,writeFile, andappendFilefunctions in anIOException - Added workarounds for the deprecation of the use of
endandreset- on objects in PHP 8.1 or newer - inheadandlastfunctions
- Added
equalsandpathhelper functions - Added default parameters to
headandlastfunctions - Added
_refobjinternal function for object comparisons - Improved
memoizefunction amenability toigbinaryandapcuextensions
- Added
pagefunction - Fixed erroneous namespace in
lastfunction - Added
kleislicomposition function
- Modified
cmatchfunction internals to better handle wildcard patterns
- Renamed namespace
Chemem\Bingo\Functional\AlgorithmstoChemem\Bingo\Functional - Moved
MaybeandEithermonad artifacts intoChemem\Bingo\Functional\Functors\Monadsnamespace - Modified
patternMatch,cmatch,compact,keysExist,reject,max,min,firstIndexOf,fill,every,compact,mean,intersects,tail,ziphelper functions - Modified pattern matching primitives namespaced under
Chemem\Bingo\Functional\PatternMatching\Internal - Removed
readIO,ask,Maybe::lift,Either::liftfunctions - Added lenses
- Added transducer functions
- Modified List and Writer monads
- Added
Functor,ApplicativeFunctor, andMonadinterfaces - Modified
intersectsfunction in immutableCollection - Renamed
matchtocmatch - Added
liftMmonad helper function - Added
Kfunction (K-combinator) - Revamped project test suite
- Modified
putStr,getLine,putStrLn,putCharIO helper functions - Added default values to
pickandpluckfunctions - 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
Transientproperties - Added
mergeNCollection method - Modified
anyandeveryCollection methods - Added
ImmutableDataStructureandImmutableListinterfaces - Added a Tuple immutable structure
- Added
mapMMonad function - Modified
map,filter,fold,reject,pluck,pick,any,every,partial,indexOf,indexesOf,addKeys,omit,partialRight,dropLeft,dropRight,mapDeep, andfilterDeephelper functions - Replaced original pattern-matching algorithm with that in the functional-php/pattern-matching library
- Added
intersperse,difference,countOfKey,countOfValue, andrenameKeysfunctions - 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, andzipWithhelper functions - Added
filterMandfoldMMonad 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, andoffsetGetCollection functions
- Modified pattern matching algorithm to enable usage of wildcards in patterns
- Modified
State,List,Writer, andReadermonads - Added
pure,liftA2Applicative helper functions - Added
bindandofmethods 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, andmapWritermonad functions - Added
fliphelper function - Added
letInfunction
- Added immutable collections
- Added object matching capability to
patternMatch - Modified
patternMatcharray matching to give more concise match results - Jettisoned reverse function
- Added
mapDeep,omit,addKeys,last,reject, andmeanhelper functions
- Refined pattern matching algorithm
- Modified
dropLeft,dropRight,map, andfilterhelper functions - Added
every,any,where,reduceRight,curryRight,foldRight,min,max,groupBy, andpatternMatchhelper functions
- Added pattern matching to library
- Removed
invalidArrayKey,invalidArrayValue,emptyArray, andmemoizationErrorcallback functions - Modified
map,pick,fold,pluck,reduce,filter,memoize, andisArrayOfhelper functions - Added
fill,partial,indexOf,reverse,toPairs,fromPairs,matchhelper functions
- Modified
orElsemethods in Maybe and Either monads - Added
flatMapmethod 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
filterfunction - Changed parameter order of the
reducefunction
- Added
map,filter,fold, andreducehelper functions
- Added callback signatures to
pluck,pick,isArrayOf, andmemoizehelper functions - Replaced
extractErrorMessagecallback function - Added
IO,Reader,Writer, andStatemonads - Added
concatandthrottlehelper functions - Added
invalidArrayKey,invalidArrayValue,emptyArray, andmemoizationErrorcallback functions - Jettisoned
Monad
- Added
filterandflatMapfunctions toMonad
- Fixed partialRight behavior in
partialLeft - Fixed error with mixed type arrays in
isArrayhelper function
- Added
isArrayOf,partialRight, andpartialLefthelper functions - Added
TransientMutatortrait - Jettisoned
partialhelper function
- Added
head,tail, andpartitionhelper functions
- First production release
- Added
compose,constantFunction,curry,curryN,extend,identity,memoize,partial,pick,pluck,zip, andunziphelper functions - Added
Either,Maybe,CollectionApplicative, andMonadtypeclasses