# Effective Haskell: Discussion of map (page 58 B2)

**URL:** <https://forum.devtalk.com/t/effective-haskell-discussion-of-map-page-58-b2/55662>\
**Category:** PragProg Customers\
**Tags:** book-effective-haskell, question\
**Created:** [19 May 2022 21:07 UTC](https://forum.devtalk.com/t/effective-haskell-discussion-of-map-page-58-b2/55662 "2022-05-19T21:07:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![melston](https://forum.devtalk.com/user_avatar/forum.devtalk.com/melston/32/1824_2.png) [@melston](https://forum.devtalk.com/u/melston)\
**Post date:** [19 May 2022 21:07 UTC](https://forum.devtalk.com/t/effective-haskell-discussion-of-map-page-58-b2/55662/1 "2022-05-19T21:07:15Z")

</div>

In the discussion of map on page 58 you present the example:

```
map ($ 10) [(+1), (*3), (`div` 5)]

```

This confuses me a lot. You introduces the function application operator ($) back on page 15 as a way of forcing validation of arguments prior to the evaluation of the function. In that case the $ comes after the function but before the arguments.

Here we have the $ 10 _as_ the function. I look at this example and it seems to be completely backward. I know what you are doing but I just cannot make sense of how it works. In fact, the ‘div’ example is a great example of where I go off the rails trying to understand this. If I execute

```
div 5 $ 10 

```

in ghci I get the result 0. And, of course, this doesn’t work at all:

```
$ 10 `div` 5 // or even $ 10 div 5

```

So what this does is

```
div 10 5

```

But, for the life of me, I cannot figure out how that happens from the given map command.
