在Mathematica中,我試圖在更復雜的表達式中使用變換,同時將表達式映射到列表上。出於某種原因使用轉換規則會導致完全不同的值,但我無法從文檔中說明原因。帶變換的映射列表返回不同的值
Clear[x, values]
values = {{1}, {2, Null, 3}, {4, 5, Null, 6, Null }}
Out[122]= {{1}, {2, Null, 3}, {4, 5, Null, 6, Null}}
Length[x] /. x -> DeleteCases[#, Null] & /@ values
Out[123]= {0, 0, 0}
Length[DeleteCases[#, Null]] & /@ values
Out[124]= {1, 2, 3}
更新: 到目前爲止,我已經能夠弄清楚,Length[x]
是即使沒有定義x
有效的表達,因爲參數Length[]
是返回該表達元件數量的表達式。現在我需要了解如何延遲評估,直到x
被替換之後。
感謝接受。我希望能在[Mathematica.SE]上看到你,我注意到你註冊了。 –