Question: Question is about Haskell. All solutions must be in Haskell. Exercise 3. Programming with Data Types Here is the definition of a data type for

Question is about Haskell. All solutions must be in Haskell.

Question is about Haskell. All solutions must be in Haskell. Exercise 3.

Programming with Data Types Here is the definition of a data type

Exercise 3. Programming with Data Types 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 bounding boxes of objects by the points of the lower-left and upper-right hand corners of the smallest enclosing rectangle. type Number = Int type Point = (Number, Number) type Length = Number data Shape = Pt Point | Circle Point Length Rect Point Length Length deriving Show type Figure = (Shape) type BBox = (Point, Point) (a) Define the function width that computes the width of a shape. width :: Shape -> Length 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) 7 2] > map widthf [0,6,7] (b) Define the function bbox that computes the bounding box of a shape. bbox :: Shape -> BBox The bounding boxes of the shapes in the figure f are as follows. > map bbox f [((4,4),(4,4)), ((2, 2), (8,8)), ((3,3), (10,5))] (c) Define the function minx that computes the minimum x coordinate of a shape. minx :: Shape -> Number The minimum x coordinates of the shapes in the figure f are as follows. > map minX f [4,2,3] (d) Define a function move that moves the position of a shape by a vector given by a point as its second argument. move :: Shape -> Point -> Shape 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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!