我一直在解决Project Euler上的问题,其他人发布的一些解决方案使用三重符号,即'@@@'。在 v7 的帮助浏览器中,我找到了 @@ 的条目(表示它是“应用”的中缀版本),但没有找到 @@@ 的条目。这是什么意思?
编辑:这是一个例子,我认为我可以在不违反 Project Euler 精神的情况下发布:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
我一直在解决Project Euler上的问题,其他人发布的一些解决方案使用三重符号,即'@@@'。在 v7 的帮助浏览器中,我找到了 @@ 的条目(表示它是“应用”的中缀版本),但没有找到 @@@ 的条目。这是什么意思?
编辑:这是一个例子,我认为我可以在不违反 Project Euler 精神的情况下发布:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
@@@ 是 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
您可能需要扩展范围和级别规范部分。
f @@@ expr 等价于 Apply[f, expr, {1}]。