HPM Education - Haskell

Searchβ¦

Introduction

Types in Haskell

Defining Functions / Working with Functions

List Comprehensions

Higher-order Functions

Cutom Types

Interactive Programming

Functors, Applicatives and Monads

The map Function

The

`map`

function takes in a function and a list, and applies the given function to each element of that list. As we have seen how list comprehensions work in the previous chapter, we could define map as:1

map :: (a -> b) -> [a] -> [b]

2

map f xs = [f x | x <- xs]

Copied!

Note that the type variables

`a`

and `b`

in the function definition could represent the same type, but this definition gives us flexibility so that a function passed in that takes in one type (`a`

) can return another type (`b`

), in which case we end up with a list of type `[b]`

. For example, we can pass in our function `squareGt100`

to a list of numbers and end up with a list of booleans:1

ghci> map squareGt100 [7..12]

2

[False, False, False, False, True, True]

Copied!

Here are some other examples of using

`map`

with other pre-defined functions:1

ghci> map (* 2) [1..5] -- multiply each number in the list by 2

2

[2, 4, 6, 8, 10]

3

β

4

ghci> map not [True, False] -- not function reverses the boolean value

5

[False, True]

6

β

7

ghci> map reverse ["Cardano", "ADA"] -- reverse a given list

8

["onadraC","ADA"]

9

β

10

ghci> map ("Hi, " ++) ["Joe", "Jan"]

11

["Hi, Joe","Hi, Jan"]

Copied!

β

Copy link