2009-10-06 10 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}} 

EDIT:これも名前のパターン変数で動作します。

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

優れています。これは私が探しているようだ。名前付きパターン変数を持つことは可能ですか? _-> {_、_ x} /; x <10 HoldPatternを使用していますか? – Tony

+0

優秀!トップドッグ。 – Tony

関連する問題