do.call(f, list(a, b)) calls f with what the list holds, so the call of f takes the arguments of the list
do.call(f, list(a, b))
f
list
do.call(f, list(a, b))callsfwith what thelistholds, so the call offtakes the arguments of thelist