Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
63
Task/Polymorphism/Haskell/polymorphism-2.hs
Normal file
63
Task/Polymorphism/Haskell/polymorphism-2.hs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
class Circle (x, y, r)
|
||||
# make a new copy of this instance
|
||||
method copy ()
|
||||
return Circle (x, y, r)
|
||||
end
|
||||
|
||||
# print a representation of this instance
|
||||
method print ()
|
||||
write ("Circle (" || x || ", " || y || ", " || r || ")")
|
||||
end
|
||||
|
||||
# called during instance construction, to pass in field values
|
||||
initially (x, y, r)
|
||||
self.x := if /x then 0 else x # set to 0 if argument not present
|
||||
self.y := if /y then 0 else y
|
||||
self.r := if /r then 0 else r
|
||||
|
||||
end
|
||||
|
||||
class Point (x, y)
|
||||
# make a new copy of this instance
|
||||
method copy ()
|
||||
return Point (x, y)
|
||||
end
|
||||
|
||||
# print a representation of this instance
|
||||
method print ()
|
||||
write ("Point (" || x || ", " || y || ")")
|
||||
end
|
||||
|
||||
# called during instance construction, to pass in field values
|
||||
initially (x, y)
|
||||
self.x := if /x then 0 else x # set to 0 if argument not present
|
||||
self.y := if /y then 0 else y
|
||||
|
||||
end
|
||||
|
||||
procedure main ()
|
||||
p1 := Point ()
|
||||
p2 := Point (1)
|
||||
p3 := Point (1,2)
|
||||
p4 := p3.copy ()
|
||||
|
||||
write ("Points:")
|
||||
p1.print ()
|
||||
p2.print ()
|
||||
p3.print ()
|
||||
p4.print ()
|
||||
# demonstrate field mutator/accessor
|
||||
p3.x := 3
|
||||
write ("p3 value of x is: " || p3.x)
|
||||
|
||||
c1 := Circle ()
|
||||
c2 := Circle (1)
|
||||
c3 := Circle (1,2)
|
||||
c4 := Circle (1,2,3)
|
||||
|
||||
write ("Circles:")
|
||||
c1.print ()
|
||||
c2.print ()
|
||||
c3.print ()
|
||||
c4.print ()
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue