Homework 1 Solution

$35.00 $29.05

You'll get a: . zip file solution, download link after Payment

Description

Problem 1:

———-

Implement the function

computePolygonArea :: [(Double,Double)] -> Double

that computes the area of the polygon. The formula

for the area of the polygon is given at:

http://mathworld.wolfram.com/PolygonArea.html

You should report an error when the list is empty or contains

only one point.

You should implement the function

det :: (Double,Double) -> (Double,Double) -> Double

that computes the determinate of the 2 x 2 matrix whose

columns are given by the first and second arguments, respectively.

You should use the det function in your computation of the

polygon area.

Problem 2:

———-

See https://en.wikipedia.org/wiki/Chess for more details

We only consider the situation where there is only a single

piece on the board

Given the definitions

—————————————————————

type File = Char — column index

— valid files are ‘a’,’b’,…,’h’

type Rank = Int — row index

— valid ranks are 1,2,…8

type Position = (File,Rank)

data Color =

Black | White

deriving (Eq,Show)

data Piece =

King | Queen | Rook | Bishop | Knight | Pawn

deriving (Eq,Show)

—————————————————————

implement the functions

—————————————————————

isLegalPosition :: Position -> Bool

isLegalMove :: Color -> Piece -> Position -> Position -> Bool

—————————————————————

that check whether a position is a legal board position and whether a

move is legal.