I was hoping isFunction
might be a “protocol identifier”, but alas only Function
itself and its subclasses make it true
. BinaryOpFunction.isFunction
is false
for instance. There are no actual uses for isFunction
in the class library… but I found the need myself to treat BinaryOpFunction
as “the same”, meaning I need to call value
on it to “resolve” it, i.e.
f = {42}
g = f + 3
f.value // 42
g.value // 45
g.isFunction // -> false
Of course it is trivial to do
g.isKindOf(AbstractFunction) // -> true
instead, but I was wondering what the meaning of isFunction
is actually supposed to be.