November 2016
Intermediate to advanced
697 pages
14h 44m
English
In geometry, a two-dimensional point and a vector are not the same, even if they both have an x and y component. In Julia, we can also define them as different types as follows:
# see the code in Chapter 6\unions.jl
type Point
x::Float64
y::Float64
end
type Vector2D
x::Float64
y::Float64
endHere are the two objects:
p = Point(2, 5) that returns Point(2.0, 5.0)v = Vector2D(3, 2) that returns Vector2D(3.0, 2.0)Suppose we want to define the sum for these types as a point that has coordinates as the sum of the corresponding coordinates:
+(p, v)
This results in an ERROR: `+` has no method matching +(::Point, ::Vector2D) error message.
Even after defining the following, +(p, v) still returns the same error because of multiple dispatch (Julia ...
Read now
Unlock full access