2009-07-17 46 views
14

Tôi đã làm việc thông qua các sự cố trên Project Euler và một số giải pháp mà những người khác đã đăng sử dụng dấu ba chấm tại dấu, tức là '@@@'. Trong trình duyệt trợ giúp cho v7, tôi tìm thấy một mục nhập cho @@ (nói rằng đó là phiên bản "Áp dụng") nhưng không có gì cho @@@. Nó có nghĩa là gì?Trong Mathematica, @@@ có nghĩa là gì?

EDIT: Dưới đây là một ví dụ, mà tôi nghĩ rằng tôi có thể đăng mà không vi phạm tinh thần của Dự án Euler:

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

Trả lời

20

Như những người khác đã ghi nhận, @@@, về mặt kỹ thuật, viết tắt cho Apply với một đối số thứ ba tùy chọn, như được giải thích sâu trong documentation for Apply.

Nhưng tôi thích nghĩ về

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

như viết tắt cho

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

Nói cách khác, phải mất một chức năng tinh khiết (viết tắt: ...#...&) mà không một Apply (viết tắt: @@) để một danh sách các đối số và Map (viết tắt: /@) rằng trong danh sách các đối số như vậy. Kết quả là

{f[a,b], f[c,d], f[e,i]} 
+0

Tôi phải chạy một vài cách trước khi có ý nghĩa! Nhưng bạn nói đúng, điều đó có vẻ giống như cách giải thích tự nhiên nhất. – Eric