2009-07-17 27 views
14

私はProject Eulerに関する問題を解決しています。他の人が投稿した解決策の中には、三角アットマーク(@@@など)を使用しています。 v7のヘルプブラウザでは、@@(​​それは「適用」のインフィックスバージョンです)というエントリがありますが、@@@はありません。どういう意味ですか?Mathematicaでは、@@@は何を意味していますか?

編集:ここで私はプロジェクト・オイラーの精神に違反することなく投稿できると思う例は、次のとおり

bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1]; 

答えて

20

他の人が指摘しているようdocumentation for 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]} 
+0

私はそれが理にかなった前にいくつかの方法を実行しなければならなかった!しかし、あなたは正しい、それは最も自然な解釈のように思える。 – Eric

9

@@@レベル1

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

で適用のための短い形式が

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

参考に相当している:あなたはhttp://reference.wolfram.com/mathematica/ref/Apply.html

あり拡大する必要があるスコープとレベル指定のセクションを参照してください。

関連する問題