In this post, we will solve **Compute the Perimeter of a Polygon HackerRank Solution**. This problem** (Compute the Perimeter of a Polygon)** is a part of **HackerRank Functional Programming** series.

**Task**

You are given the cartesian coordinates of a set of points in a **2D** plane. When traversed sequentially, these points form a Polygon, * P*, which is not self-intersecting in nature. Can you compute the perimeter of polygon

*?*

**P****Input Format**

The first line contains an integer, * N*, denoting the number of points.

The

*subsequent lines each contain*

**N****2**space-separated integers denoting the respective

*and*

**x***coordinates of a point.*

**y****Constraints**

- No
**2**points are*coincident*, and polygonis obtained by traversing the points in a clockwise direction.**P** **3 <=***N*<= 1000**0 <=***x*,*y*<= 1000

**Output Format**

For each test case, print the perimeter of * P* (correct to a scale of one decimal place).

**Note:** Do not add any leading/trailing spaces or units.

**Sample Input**

```
4
0 0
0 1
1 1
1 0
```

**Sample Output**

`4`

**Explanation**

The given polygon is a square, and each of its sides are **1** unit in length. ** perimeter(P) = 1 + 1 + 1 + 1 = 4**, so we print

**4**on a new line.

**Solution – Compute the Perimeter of a Polygon – HackerRank Solution**

**Haskell**

d [x,y,x1,y1] = sqrt $ (x1 - x)^2 + (y1 - y)^2 d _ = 0 p [] acc = acc p points acc = p (drop 2 points) (acc + (d (take 4 points))) perimeter points = p (points ++ (take 2 points)) 0 main :: IO () main = do _ <- getLine x <- getContents let f = map read $ words x print $ perimeter f

**Note:** This problem **(Compute the Perimeter of a Polygon)** is generated by **HackerRank** but the solution is provided by **CodingBroz**. This tutorial is only for **Educational** and **Learning** purpose.