16 lines
478 B
Forth
16 lines
478 B
Forth
type Printable =
|
|
abstract member Print : unit -> unit
|
|
|
|
type Point(?x, ?y) =
|
|
member t.x = defaultArg x 0.0
|
|
member t.y = defaultArg y 0.0
|
|
interface Printable with
|
|
member t.Print() = printfn "Point(x:%f, y:%f)" t.x t.y
|
|
|
|
type Circle(?center, ?radius) =
|
|
member t.center = defaultArg center (new Point())
|
|
member t.radius = defaultArg radius 1.0
|
|
interface Printable with
|
|
member t.Print() =
|
|
printfn "Circle(x:%f, y:%f, r:%f)" t.center.x t.center.y t.radius
|