It is possible to specify the argument type for a function in Julia like : addition(x::Int64,y::Int64)
. I can, simultaneously, define another function with the same name : addition(x::Float64,y::Int64)
Is it possible to also specify the above function such that instead of a restriction on type, I specify a restriction on the values x
or y
can take? So, for example, I could say that if x
takes values between 1.0 and 15.0 then use one definition of addition
and if it take values above 15.0 then use another definition.
So basically I would like to specify the range of values that the arguments of a function can take, like in Mathematica one can do : addition[i_, j_] /; 0.0 <= i <= 15.0 && 0.0 <= j <= 15.0 := i + j
.
Thanks!
There is nothing special about what Mathematica does here, every programming language in history can do this, and Julia too.
addition[i_, j_] /; 0.0 <= i <= 15.0 && 0.0 <= j <= 15.0 := i + j
becomes
addition(i, j) = (0<=i<=15) && (0<=i<=15) && return i+j
But what should the function do if the inputs do not fall within the ranges? Right now it will return nothing
.