Wolfram Research has had the same documentation for this function for the last 8 years at least:
Thread[f[args]]
"threads" f over any lists that appear in args.
A lovely circular definition if I've ever seen one.
Does anyone know what the actual semantics are and can provide a proper explanation that is non-circular?
It works similarly to Python's zip()
function, but in a slightly more general fashion. For example:
In[1] := Thread[{{1, 2, 3}, {4, 5, 6}}] (* f == List *)
Out[1] = {{1, 4}, {2, 5}, {3, 6}}
In[2] := Thread[f[{1, 2, 3}, {4, 5, 6}]]
Out[2] = {f[1, 4], f[2, 5], f[3, 6]}
In[3] := Thread[f[a+b+c, d+e+f], Plus]
Out[3] = f[a, d] + f[b, e] + f[c, f]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With