How to map function f to every element

One can also temporarily apply a Listable function with

Function[x, f[x], Listable][list]

Listability works differently than mapping to level {-1} when the elements of the list have parts:

Function[x, f[x], Listable][{b, {e, g, {c, a + Exp[d]}}}]
(*  {f[b], {f[e], f[g], {f[c], f[a + E^d]}}}  *)

Map[f, {b, {e, g, {c, a + Exp[d]}}}, {-1}]
(*  {f[b], {f[e], f[g], {f[c], f[a] + f[E]^f[d]}}}  *)

you can also give the attribute Listable to your function

SetAttributes[f, Listable]

and then simply write

f@{{a, b, {c, d}}, {d, {e, g, {c, d}}}}