式の横断順を追う
EchoとEchoFunctionは,パターンマッチングの際に式の要素が訪れられた順序を報告させることができる.
Casesが式の第1レベルの各部分を訪れる順序を観察する.
In[1]:=
![Click for copyable input](assets.ja/follow-expression-traversals/In_24.png)
Cases[{a, 2, {7, {1, b}}, 0}, x_ /; NumberQ[Echo[x]]]
»
![](assets.ja/follow-expression-traversals/O_21.png)
»
![](assets.ja/follow-expression-traversals/O_22.png)
»
![](assets.ja/follow-expression-traversals/O_23.png)
»
![](assets.ja/follow-expression-traversals/O_24.png)
Out[1]=
![](assets.ja/follow-expression-traversals/O_25.png)
同じ式のすべてのレベルを訪れる.
In[2]:=
![Click for copyable input](assets.ja/follow-expression-traversals/In_25.png)
Cases[{a, 2, {7, {1, b}}, 0}, x_ /; NumberQ[Echo[x]], All]
»
![](assets.ja/follow-expression-traversals/O_26.png)
»
![](assets.ja/follow-expression-traversals/O_27.png)
»
![](assets.ja/follow-expression-traversals/O_28.png)
»
![](assets.ja/follow-expression-traversals/O_29.png)
»
![](assets.ja/follow-expression-traversals/O_30.png)
»
![](assets.ja/follow-expression-traversals/O_31.png)
»
![](assets.ja/follow-expression-traversals/O_32.png)
»
![](assets.ja/follow-expression-traversals/O_33.png)
»
![](assets.ja/follow-expression-traversals/O_34.png)
Out[2]=
![](assets.ja/follow-expression-traversals/O_35.png)