Open GrahamCampbell opened 5 years ago
Short closures would be nice here:
Pipe::switch(fn(int $maxAge) => Gen::range(1, $maxAge))
Maybe next year. :-)
I have a partial function application function that could work:
Pipe::switch(Func::apply([Gen::class, 'range'], 1))
Still not the smoothest, but no function definition.
Not sure how often currying would be needed with range()
though. It wasn't the most practical of examples.
Hmmm. I guess I was looking for a way to have the nicest possible syntax.
What about if the default was curried, and there was a mechanism to uncurry?
Neat little package. After a skim of the examples, I immediately thought that currying would be neat. Like:
BEFORE:
AFTER:
The only problem with this is that it's not possible to encode optional params. Perhaps explicitly have two methods, and take the step first?
Pipe::switch(Gen::rangeWithStep(3)(1))