With the MissingSkipper
wrapper proposed above, the behavior of adding skipmissing
to every argument would just be a fallback. The wrapper function can be overloaded to have the proper behavior for each function:
(s::MissingSkipper{typeof(quantile)})(x, p; kwargs...) =
quantile(skipmissing(x), p; kwargs...)
Then quantile?(x, p)
would work as expected.
But if ?
supports both vectors and functions as proposed then we could also just write
quantile(xs?, [0.1, 0.2])
reduce(+, xs?)