I have a function:
function f(a)
do something that depends on a
end
which behaviour depends on the parameter a. This can be a string, an int or a function itself. For this, I want to check if the parameter is a function itself.
function f(a)
if typeof(a) == int
...
end
...
end
I tried to use typeof(a). If a is a function, I get :
typeof(a) (singleton type of function a, subtype of Function)
but if I then use:
typeof(a) == Function
it is false.
You might also consider using Julia's Multiple Dispatch feature:
function f(x::Function)
# do something with a Function
end
funcion f(x::Int)
# do something with an Int
end
instead of using conditions inside the function.
This has the benefit of being faster if the compiler can do the type inference during compile-time and being more Julian.
You can use isa() for this. A simple example:
julia> f(x) = x
f (generic function with 1 method)
julia> isa(f, Function)
true
isa can also be used as an infix operator:
julia> f isa Function
true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With