Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
18
Task/Polymorphism/Groovy/polymorphism-1.groovy
Normal file
18
Task/Polymorphism/Groovy/polymorphism-1.groovy
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
@Canonical
|
||||
@TupleConstructor(force = true)
|
||||
@ToString(includeNames = true)
|
||||
class Point {
|
||||
Point(Point p) { x = p.x; y = p.y }
|
||||
void print() { println toString() }
|
||||
Number x
|
||||
Number y
|
||||
}
|
||||
|
||||
@Canonical
|
||||
@TupleConstructor(force = true)
|
||||
@ToString(includeNames = true, includeSuper = true)
|
||||
class Circle extends Point {
|
||||
Circle(Circle c) { super(c); r = c.r }
|
||||
void print() { println toString() }
|
||||
Number r
|
||||
}
|
||||
8
Task/Polymorphism/Groovy/polymorphism-2.groovy
Normal file
8
Task/Polymorphism/Groovy/polymorphism-2.groovy
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
def p = new Point(x: 3, y: 4)
|
||||
def c = new Circle(x: 4, y: 3, r: 5)
|
||||
|
||||
[(p): new Point(p), (c): new Circle(c)].each { v1, v2 ->
|
||||
print "Verifying $v1 == "
|
||||
v2.print()
|
||||
assert v1 == v2
|
||||
}
|
||||
30
Task/Polymorphism/Julia/polymorphism.julia
Normal file
30
Task/Polymorphism/Julia/polymorphism.julia
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import Base.print
|
||||
|
||||
type Point
|
||||
x::Float64
|
||||
y::Float64
|
||||
end
|
||||
|
||||
print(p::Point) = println("Point($(p.x), $(p.y))")
|
||||
|
||||
x(p::Point) = p.x
|
||||
y(p::Point) = p.y
|
||||
|
||||
setx(p::Point, x) = (p.x = x)
|
||||
sety(p::Point, y) = (p.y = y)
|
||||
|
||||
type Circle
|
||||
x::Float64
|
||||
y::Float64
|
||||
r::Float64
|
||||
end
|
||||
|
||||
x(c::Circle) = c.x
|
||||
y(c::Circle) = c.y
|
||||
r(c::Circle) = c.r
|
||||
|
||||
setx(c::Circle, x) = (c.x = x)
|
||||
sety(c::Circle, y) = (c.y = y)
|
||||
setr(c::Circle, r) = (c.r = r)
|
||||
|
||||
print(c::Circle) = println("Circle($(c.x), $(c.y), $(c.r))")
|
||||
Loading…
Add table
Add a link
Reference in a new issue