Prefix
ve Postfix
işleçleriyle (sırasıyla @
ve //
) oynuyordum ve aşağıdaki soruna rastladım.Mathematica'da f @ expr ve expr // f kullanarak farklı sonuçlar
Aşağıdaki kod, aynı kesin bir şekilde değerlendirmek Verilen: Ben gerçekten çok emin değilim
[email protected]'[0]
(* Abs'[0] *)
Abs'[0] // FunctionExpand
(* 0 *)
:
Hold[[email protected]@data] // FullForm
(* Hold[MatrixPlot[Sort[data]]] *)
Hold[data // Sort // MatrixPlot] // FullForm
(* Hold[MatrixPlot[Sort[data]]] *)
Ancak şu ifadelere yer verildi, ben farklı sonuçlar elde neden bu. Sahip olduğum diğer kod parçacıkları içinde, [email protected]
, expr // f
ve f[expr]
hepsi aynı sonucu değerlendirir. Bu özel durum neden bu sonucu veriyor?
Bu bağlantı muhtemelen alakalı olabilir: http://www.mathprogramming-intro.org/book/node174.html, benzer öncelikli konuları tartıştığım yer. Orijinal ifadede 'FullForm' kullanılması genellikle yardımcı olur. –
@Leonid 'FullForm', önerdiğimden daha fazlasını görmek için daha iyi bir yoldur; Bunu cevabıma ekledim, umarım sakıncası yok – acl
@acl Harika! Dışarı çıkarken cevabı yazıyordum, o yüzden benimkini aldım, senin için oy verdim ve bağlantıyı bıraktım. Her iki yaklaşımın da listelenmesi iyidir. –