import scala.math.Pi

sealed trait Figure{
	def perimeter():Double
	def area():Double
	override def toString="The perimeter is"+perimeter
}

case class Rectangle(width:Double, height:Double) extends Figure{
	override def perimeter()=(width+height)*2
	override def area()=width*height
}

case class Circle(radius: Double) extends Figure{
	override def perimeter()=2*radius*Pi
	override def area()=Pi*radius*radius
}

object TestFigure{
	def main(args:Array[String]):Unit={
		var l1: List[Figure]=List()
		val r1=Rectangle(4,5)
		val c1=Circle(3)
		l1=l1:+r1
		l1=l1:+c1
		val lperim=l1.map(_.perimeter())
		val larea=l1.map(_.area())
		println(l1(0))
		println(l1(1))
		println(lperim)
		println(larea)
}
}

//scalac Figure.scala
//scala TestFigure
