Ваш исправленный вопрос прост: просто
f @@ {a,b,c,...} == f[a,b,c,...]
, где @@
- сокращение от Apply
.Внутренне {a,b,c}
равно List[a,b,c]
(что можно увидеть, используя FullForm
в любом выражении), а Apply
просто заменяет Head
, List
, с новым Head
, f
, меняющим функцию.Операция Apply
не ограничивается списками, в общем
f @@ g[a,b] == f[a,b]
Кроме того, посмотрите на Sequence
, что делает
f[Sequence[a,b]] == f[a,b]
Итак, мыможет сделать это вместо
f[ Sequence @@ {a,b}] == f[a,b]
, что, хотя педантичный вид может быть очень полезным.
Edit : Apply
имеет необязательное значение 2 и аргумент, который задает уровень, то есть
Apply[f, {{a,b},{c,d}}, {1}] == {f[a,b], f[c,d]}
Примечание: сокращение для Apply[fcn, expr,{1}]
равно @@@
, как обсуждено здесь , но для указания любого другого описания уровня вам нужно использоватьполная функциональная форма.