在 Mathematica 中,@@@ 是什么意思?
我一直在解决 Project Euler 上的问题,其他人发布的一些解决方案使用了三元组- 符号,即“@@@”。 在 v7 的帮助浏览器中,我找到了 @@ 的条目(它表示它是“Apply”的中缀版本),但没有找到 @@@ 的条目。 这是什么意思?
编辑:这是一个例子,我想我可以在不违反欧拉项目精神的情况下发布它:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
I've been working through problems on Project Euler, and some of the solutions that other people have posted use a triple-at-sign, i.e. '@@@'. In the help browser for v7, I find an entry for @@ (which says it's the infix version of 'Apply') but none for @@@. What does it mean?
EDIT: Here's an example, which I think I can post without violating the spirit of Project Euler:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如其他人所指出的,从技术上讲,
@@@
是带有可选第三个参数的Apply
的简写,如Apply
的文档。但我喜欢将其视为
简写
换句话说,采用一个执行
Apply
(简写)的纯函数(简写:...#...&
) :@@
) 到参数列表,而Map
(简写:/@
)则覆盖此类参数列表的列表。结果是
As others have noted,
@@@
is, technically, shorthand forApply
with an optional third argument, as is explained deep in the documentation forApply
.But I like to think of
as shorthand for
In other words, take a pure function (shorthand:
...#...&
) that does anApply
(shorthand:@@
) to a list of arguments, andMap
(shorthand:/@
) that over a list of such lists of arguments.The result is
@@@ 是“Apply at level 1”的缩写形式。
相当于
参考:http:// /reference.wolfram.com/mathematica/ref/Apply.html
您可能需要展开范围和级别规范部分。
@@@ is the short form for Apply at level 1.
is equivalent to
Reference: http://reference.wolfram.com/mathematica/ref/Apply.html
You may need to expand the Scope and Level Specification sections.
documents.wolfram.com
documents.wolfram.com