在Mathematica中,@@@是什么意思?
我一直在解决Project Euler上的问题,其他人发布的一些解决方案使用三重符号,即'@@@'。 在v7的帮助浏览器中,我找到@@的条目(表示它是“应用”的中缀版本),但没有找到@@@。 这是什么意思?
编辑:这里是一个例子,我认为我可以发布而不违反欧拉项目的精神:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 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]}
@@@是申请级别1的简称。
f @@@ {{a, b, c}, {d, e}}
相当于
Apply[f, {{a, b, c}, {d, e}}, {1}]
参考:http://reference.wolfram.com/mathematica/ref/Apply.html
您可能需要扩展范围和级别规范部分。
f @@@ expr等同于应用[f,expr,{1}]。
documents.wolfram.com
链接地址: http://www.djcxy.com/p/35541.html上一篇: In Mathematica, what does @@@ mean?
下一篇: What is the single most influential book every programmer should read?