You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Whenever I'm defining a pipeline of functions to be applied immediately to a starting value, instead of being given a name and saved for later, I use the following utility function:
/** * Accept an input and some callables, then apply the callables in order. * * @param $input Input to the computation. * @param $callables Any number of callables to be composed using pipe(). * @return Final result of the computation. */functionapplyTo($input, callable ...$callables) {
returnf\pipe(...$callables)($input);
}
This enables a Bash-like, left-to-right / top-to-bottom style of pipeline definition and application, for those (like me) who find it more readable than the backwards style of compose():
Do you have any suggestions / critiques? Would you accept a pull request for this function?
I also thought about other calling styles, such as curried: applyTo($input)($fn1, $fn2...) or array: applyTo($input, [$fn1, $fn2...]) but ultimately I decided to keep things simple.
The text was updated successfully, but these errors were encountered:
tobia
changed the title
Proposal: apply() utility function
Proposal: applyTo() utility function
Mar 20, 2021
Thanks for the suggestion @tobia, can you find examples of this type of function signature and naming in other functional libraries in php or in other languages?
not necessarily against it, but if there’s a similar concept in other communities that maybe use a different name or something, I’d like to keep consistent if possible.
Right. I came up with the name and signature myself, because that's what I needed. I'll look into other languages, because the state of PHP functional libraries is quite abysmal. (This is the only libraries that has curried versions of the functions, for example.)
Hello and thank you for writing this library.
Whenever I'm defining a pipeline of functions to be applied immediately to a starting value, instead of being given a name and saved for later, I use the following utility function:
This enables a Bash-like, left-to-right / top-to-bottom style of pipeline definition and application, for those (like me) who find it more readable than the backwards style of compose():
Here is a more complex example, showing how to use one applyTo() inside another:
Do you have any suggestions / critiques? Would you accept a pull request for this function?
I also thought about other calling styles, such as curried:
applyTo($input)($fn1, $fn2...)
or array:applyTo($input, [$fn1, $fn2...])
but ultimately I decided to keep things simple.The text was updated successfully, but these errors were encountered: