Can you do this using pure function?
MapThread[(Plus[#1, #] & /@ #2) &, {Range[
3], {{a, b, c}, {d, e, f}, {g, h, k}}}]
The expect result is {{1 + a, 1 + b, 1 + c}, {2 + d, 2 + e, 2 + f}, {3 + g, 3 + h, 3 + k}}.
I know that I can defind this but it's not pure function.
plusMap[x_, y_] := Plus[x, #] & /@ y
MapThread[
plusMap[#1, #2] &, {Range[3], {{a, b, c}, {d, e, f}, {g, h, k}}}]