3. (15pts) Use proper abstract list processing functions to do following task consumes a list of structure as its parameter and produces a list of structure whose color is equal to "red". Contract for abstract functions for list-processing: filter: [X Boolean) [List-of X] - [List-of X] map: [X Y] [List of X] - [List-of Y] foldr/folde: [X Y Y Y [List of X] Y 1. (20pts) Design and instantiate a structure which has 2 fields: color (line color), positions (positions of a line), color is represented by a string and positions is represented by a list which has only 2 elements. Each element is a posn structure with 2 fields: x (x coordinate) and y coordinate). x and y are represented by numbers. (Do not forget to write down the functions constructors, selectors, and predicates. Solve Question 2,3 by using that structure) Distance of two points A(x,y) and B(x,y) is given by: distance(A,B) = v(x,-x)+(y, - y.)? 3. (15pts) Use proper abstract list processing functions to do following task consumes a list of structure as its parameter and produces a list of structure whose color is equal to "red". Contract for abstract functions for list-processing: filter: [X Boolean) [List-of X] - [List-of X] map: [X Y] [List of X] - [List-of Y] foldr/folde: [X Y Y Y [List of X] Y 1. (20pts) Design and instantiate a structure which has 2 fields: color (line color), positions (positions of a line), color is represented by a string and positions is represented by a list which has only 2 elements. Each element is a posn structure with 2 fields: x (x coordinate) and y coordinate). x and y are represented by numbers. (Do not forget to write down the functions constructors, selectors, and predicates. Solve Question 2,3 by using that structure) Distance of two points A(x,y) and B(x,y) is given by: distance(A,B) = v(x,-x)+(y, - y.)