For a function-like object, aka callable/functor, is there any problem with making it a subtype of Function?
As in,
struct Polynomial{R} <: Function # XXX
coeffs::Vector{R}
end
(p::Polynomial)(t) = evaluate_polynomial(p, t) # see code in Julia docs
The point of this would be to be able to pass a Polynomial object as a Function argument, for example as the argument control in a function discretize defined as (among other methods)
function discretize(control::Function, tlist)
return [control(t) for t in tlist]
end
Of course, I’m not saying that all callables must/should be subtypes of Function, but if they’re not subtypes of some other abstract type, is there a reason not to make them subtypes of Function?