# Introduction To Haskell

Mapping

## Introduction

The **map** function is a **higher-order function** that applies a given function to each element of a list, returning a list of results.

From the specification,

A function is higher-order if it takes a function as an argument or returns a function as a result, or does both.

The order of play for this function is,

**map** *function* *list*

In the example, a function is defined to return the square of a number.

The map function applies the sq function to each element in the list. A list of results is returned.

Remember that operators are also functions in Haskell. With standard operators, you can achieve the same effect with,

## Example

Triangular numbers are in the following form,

One way to calculate the nth triangular number is the sum of the integers from 1 to n. We can write a simple function to do that and use it as an argument for the map function.

triangular n = sum [1..n] triangular_sequence = map triangular [1..10]

Another way to calculate the nth triangular number, avoiding the summing, is with the following formula,

This can be written as a function, like this,

tri_gen x = floor (x*(x+1)/2)

Pentagonal numbers can be generated using the following formula,

You could write your own function to generate these and then map it onto a list.