# Programming Challenges

Let's solve coding challenges to practice common computation patterns.

## Challenge 1: `map`

on `either`

type

The following algebraic datatype defines the `either`

type:

```
type ('a, 'b) either = Left of 'a | Right of 'b
```

As a convention, `Right of 'b`

holds the correct value while `Left of 'a`

represents an error value.

Write a mapping function for `either`

called `map_either : ('a -> 'b) -> ('c, 'a) either -> ('c, 'b) either`

.

Examples:

```
map_either (fun x -> x * x) (Right 2)= Right 4
map_either (fun x -> x * x) (Left "Error case") = Left "Error case"
```

Get hands-on with 1200+ tech skills courses.