在Mathematica中,@@@是什么意思?

16
我一直在解决欧拉计划上的问题,其他人发布的一些解决方案使用三个@符号,即'@@@'。在v7的帮助浏览器中,我找到了一个关于@@的条目(它说它是'Apply'的中缀版本),但没有关于@@@的条目。这是什么意思?
编辑:这里有一个例子,我认为我可以发布而不违反欧拉计划的精神:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
3个回答

25

正如其他人所指出的那样,@@@技术上是一个带有可选第三个参数的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]}

我必须运行几次才能理解它!但是你说得对,那似乎是最自然的解释。 - Eric

12

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接