tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
31
Task/Polymorphism/Haskell/polymorphism-1.hs
Normal file
31
Task/Polymorphism/Haskell/polymorphism-1.hs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
data Point = Point Integer Integer
|
||||
instance Show Point where
|
||||
show (Point x y) = "Point at "++(show x)++","++(show y)
|
||||
|
||||
-- Constructor that sets y to 0
|
||||
ponXAxis = flip Point 0
|
||||
|
||||
-- Constructor that sets x to 0
|
||||
ponYAxis = Point 0
|
||||
|
||||
-- Constructor that sets x and y to 0
|
||||
porigin = Point 0 0
|
||||
|
||||
data Circle = Circle Integer Integer Integer
|
||||
instance Show Circle where
|
||||
show (Circle x y r) = "Circle at "++(show x)++","++(show y)++" with radius "++(show r)
|
||||
|
||||
-- Constructor that sets y to 0
|
||||
conXAxis = flip Circle 0
|
||||
|
||||
-- Constructor that sets x to 0
|
||||
conYAxis = Circle 0
|
||||
|
||||
-- Constructor that sets x and y to 0
|
||||
catOrigin = Circle 0 0
|
||||
|
||||
--Constructor that sets y and r to 0
|
||||
c0OnXAxis = flip (flip Circle 0) 0
|
||||
|
||||
--Constructor that sets x and r to 0
|
||||
c0OnYAxis = flip (Circle 0) 0
|
||||
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