Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

Mapping the World

Originally submitted to Elm Europe 2017 with this simpler abstract

All aboard explorers! Travel in the footsteps of Strabo, Champlain, Mercator, and other famous geographers on a mission to model the world around you using the most powerful function in the Elm arsenal: the map.

Starting with a simple model of the world, we will quickly layer on more complexity: dealing with multiple maps, data that doesn't exist yet, and functions that require multiple inputs. Along the way we'll encounter many of Elm's core data types, mapping our way to creating a real map.

Re-submitted to ElmConf 2017 with this more fleshed out version


From the earliest cave paintings to today's GPS-assisted smartphone apps, maps have been an important part of we have described the world around us. But what goes into turning the life-size 3d world into a 2d image that fits in your pocket?

Follow in the footsteps of great cartographers such as Ptolemy, Piri Reis, and Champlain as we build our own map of the state of Missouri using Elm. Along the way we'll encounter one of Elm's most powerful tools for transforming data: the map function. As we solve each challenge, you will accumulate a concrete examples to draw on in your own work.


This is a cartography-themed walkthrough of building a project in Elm. Because mapping is all about converting real-world data into a visual representation, we will focus on Elm's data transformation functions, especially map in its many contexts.

This talk will only assume a beginner-level understanding of Elm. Audience members should leave with a greater appreciation for cartography, a lot of data transformation "case studies" they can apply to their own work, and hopefully a deeper understanding of how powerful map is.

Although map will be featuring heavily in our solutions and we'll see it used with many of the core data structures (List, Json.Decode, Result, Maybe), this is not a theoretical functor talk.


Most software problems are like cartography: We take a real world problem and real world data, run transformations on it, and use the transformed data for some sort of output.

Walking through the steps of building a map will touch on many of the roadblocks we all run into when writing software. For newer users of Elm, this will be particularly helpful as it will give them a lot of concrete examples of problems and solutions that they can refer back to.

I've helped out a lot of Elm developers both online and in person. In a large number of cases, the solution to the problem is "use map". I want to raise awareness of the usefulness of what is one of Elm's most useful functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.