Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Haskell Programming Here is the definition of a data type for representing a few basic shapes. A figure is a collection of shapes. The type
Haskell Programming
Here is the definition of a data type for representing a few basic shapes. A figure is a collection of shapes. The type BBox represents boending boxes of objects by the points of the lower-left and upper-right hand corners of the smallest enclosing rectangle. (a) Define the function width that computes the width of a shape. width::ShapeLength For example, the widths of the shapes in the figure f are as follows. f=[Pt(4,4),Circle(5,5)3,Rect(3,3)72]>mapwidthf[0,6,7] (b) Define the function bbox that computes the bounding box of a shape. bbox::ShapeBBox The bounding boxes of the shapes in the figure f are as follows. >napbboxf[((4,4),(4,4)),((2,2),(8,8)),((3,3),(10,5))] 4 (c) Define the function minX that computes the minimum x coordinate of a shape. minx::ShapeNumber The minimum x coordinates of the shapes in the figure f are as follows. >mapminx+[4,2,3] (d) Define a function nove that moves the position of a shape by a vector given by a point as its second argument. move::ShapePointShape It is probably a good idea to define and use an auxiliary function addPt : : Point Point Point, which adds two points component wise
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started