2009-10-06 28 views
5

Ví dụ:Trong Mathematica, làm thế nào tôi có thể tìm thấy các mẫu bao gồm các quy tắc và danh sách?

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

Tôi muốn tìm tất cả các biểu thức trong danh sách với mô hình này:

_ -> {_,_} 

Yếu tố đầu tiên, "a" -> {{1}, 12}, được đại diện bởi mẫu này.

Tuy nhiên, không ai trong số các biểu thức làm việc:

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

Lời khuyên nào sẽ được đánh giá cao.

Trả lời

9

gì bạn đang tìm kiếm là HoldPattern:

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

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

EDIT: này cũng làm việc với các biến số mô hình được đặt tên.

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

Tuyệt vời. Điều này có vẻ là những gì tôi đang tìm kiếm. Có thể đặt tên biến mẫu, ví dụ: _-> {_, _ x} /; x <10 khi đang sử dụng HoldPattern? – Tony

+0

Tuyệt vời! Top dawg. – Tony

Các vấn đề liên quan