2
votes

I am trying to thread MemberQ through a list, i.e.:

I have

a={{1, 9}, {2, 5}, {3, 1}, {4, 3}};
b= {1, 5, 2, 6};

Ideally I would like to have a threaded and listable MemberQ function TLMemberQ to do the following:

TLMember[a,b] to return {True,True,False,False}. How can I do that in a way that execute fastest. Note: Neither Thread@MemberQ nor MemberQ@Thread work. MemberQ attributes is Protected

2
What about MapThread[MemberQ, {a, b}]? - Heike
@Heike answered simultaneously again! - acl

2 Answers

6
votes

This:

MapThread[MemberQ, {a, b}]

?

See what it does like this:

Trace[
    MapThread[MemberQ, {a, b}],
    MemberQ
]
(*
{{MemberQ[{1,9},1],True},
 {MemberQ[{2,5},5],True},
 {MemberQ[{3,1},2],False},
 {MemberQ[{4,3},6],False}}
*)
3
votes

MemberQ[#[[1]], #[[2]]] & /@ Transpose[{a, b}]