2009-10-06 14 views
5

實施例:在Mathematica中,我如何找到包含規則和列表的模式?

test = {"a" -> {{1}, 12}, "b" -> {13}} 

我想找到列表中的所有表達與這種模式:

_ -> {_,_} 

第一元件, 「一」 - > {{1},12},用這種模式來表示。

然而,這些表達式的工作:

Cases[test,_->{_,_}], Cases[test,_->_], Cases[test,Rule[_,_]], etc. 

任何意見,將不勝感激。

回答

9

什麼你要找的是HoldPattern

In[1]:= test = {"a" -> {{1}, 12}, "b" -> {13}}; 

In[2]:= Cases[test, HoldPattern[_ -> {_, _}]] // InputForm 
Out[2]= {"a" -> {{1}, 12}} 

編輯:這也適用於命名模式變量。

In[3]:= Cases[test, HoldPattern[_ -> {x_, _}] :> x] 
Out[3]= {{1}} 
+0

非常好。這似乎是我正在尋找的。是否有可能具有命名模式變量,例如 _-> {_,_ x} /;在使用HoldPattern時x <10 ? – Tony 2009-10-06 13:50:34

+0

非常好!頂部dawg。 – Tony 2009-10-06 23:33:01

相關問題