Что означает @@@Mathematica?

Я работаю над проблемами Project Euler, а некоторые из решений, которые другие люди публикуют, используют трехзначный знак, т.е. '@@@'. В браузере справки для v7 я нахожу запись для @@(которая говорит, что это инфиксная версия "Применить" ), но для @@@. Что это значит?

EDIT: Вот пример, который, я думаю, могу опубликовать, не нарушая дух Project Euler:

bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];

Ответы

Ответ 1

Как отмечали другие, @@@ является технически сокращенным для Apply с необязательным третьим аргументом, как это объясняется в документации для Apply.

Но мне нравится думать о

f @@@ {{a,b}, {c,d}, {e,i}}

как сокращение для

f @@#& /@ {{a,b} {c,d}, {e,i}}
Другими словами, возьмите чистую функцию (стенограмма: ...#...& ), которая делает Apply (стенограмма: @@) в список аргументов и Map (стенограмма: /@), что список таких списков аргументов. Результатом является
{f[a,b], f[c,d], f[e,i]}

Ответ 2

@@@- краткая форма для Применить на уровне 1.

f @@@ {{a, b, c}, {d, e}}

эквивалентно

Apply[f, {{a, b, c}, {d, e}}, {1}]

Ссылка: http://reference.wolfram.com/mathematica/ref/Apply.html

Вам может потребоваться развернуть разделы "Область и уровень".