## Creating a function preimage - understanding how dictionaries and sets work

In this recipe, we will explain in detail how the `Dict`

and `Set`

types identify keys in Julia.

### Getting ready

The example that we will use is the creation of a dictionary that stores a `preimage`

function.

Given a function,

and

, we will call `preimage`

of

a set

; see the example at http://mathworld.wolfram.com/Preimage.html.

In particular, we need to create `preimage`

of all possible values of a mapping,

, given the domain,

and the set * B* defined as an image of

*under*

**A**, as calculated by Julia.

### Note

In the GitHub repository for this recipe, you will find the `commands.txt`

file that contains the presented sequence of shell and Julia commands.

Now open your favorite terminal to execute commands.

### How to do it...

We will perform the computations in three steps. Firstly, we create an appropriate data structure that will hold our data, then we will add elements to it, and finally, we will print out its contents to understand which key...