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

发布于 2024-07-27 22:26:47 字数 340 浏览 0 评论 0原文

我一直在解决 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

裂开嘴轻声笑有多痛 2024-08-03 22:26:47

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

As others have noted, @@@ is, technically, shorthand for Apply with an optional third argument, as is explained deep in the documentation for Apply.

But I like to think of

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

as shorthand for

f @@#& /@ {{a,b} {c,d}, {e,i}}

In other words, take a pure function (shorthand: ...#...&) that does an Apply (shorthand: @@) to a list of arguments, and Map (shorthand: /@) that over a list of such lists of arguments.
The result is

{f[a,b], f[c,d], f[e,i]}
我不在是我 2024-08-03 22:26:47

@@@ 是“Apply at level 1”的缩写形式。

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

相当于

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

参考:http:// /reference.wolfram.com/mathematica/ref/Apply.html

您可能需要展开范围和级别规范部分。

@@@ is the short form for Apply at level 1.

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

is equivalent to

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

Reference: http://reference.wolfram.com/mathematica/ref/Apply.html

You may need to expand the Scope and Level Specification sections.

酷到爆炸 2024-08-03 22:26:47

f @@@ expr 等价于Apply[f, expr, {1}]。

documents.wolfram.com

f @@@ expr is equivalent to Apply[f, expr, {1}].

documents.wolfram.com

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文