MapThread
works fine and dandy with rectangular list structures:
MapThread[f, {{{a, b}, {c, d}}, {{1, 2}, {3, 4}}}, 2]
{{f[a, 1], f[b, 2]}, {f[c, 3], f[d, 4]}}
But with a ragged structure, it starts complaining:
MapThread[f, {{{a, b}, {c, d, e}}, {{1, 2}, {3, 4, 5}}}, 2]
MapThread::mptd: "Object {{a,b},{c,d,e}} at position {2, 1} in MapThread[f,{{{a,b},{c,d,e}},{{1,2},{3,4,5}}},2] has only 1 of required 2 dimensions."
whereas I'd like:
{{f[a, 1], f[b, 2]}, {f[c, 3], f[d, 4], f[e, 5]}}
I can't see any obvious way to achieve a pairing of the corresponding elements, but maybe you can?