Re: evaluate to True?

*To*: mathgroup at smc.vnet.net*Subject*: [mg125931] Re: evaluate to True?*From*: Christoph Lhotka <christoph.lhotka at fundp.ac.be>*Date*: Sat, 7 Apr 2012 05:59:46 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201204061001.GAA23045@smc.vnet.net> <CAEtRDSfexgBvoLTpXVPv=6B7m_CsNwqhUAWQBvnj4JMimsN-Sg@mail.gmail.com>

Hello, yes you are right, I mean MemberQ rather than ModuleQ (please see my correction of the post [mg125913]). In fact the behaviour is consistent with the information you get for MemberQ: In[1]:= ?MemberQ "MemberQ[list, form] returns True if an element of list matches form, and False otherwise." In fact the function name is misleading (at least to me): form is never a member of list if MemberQ returns True. If this would be the case my argumentation (below, original post) would bring the behaviour of the function in troubles if form is the "expression for everything". The misinterpretation of the function due to the name can be the cause of severe bugs as seen in message [mg125911]. Maybe a name like MatchQ would be more appropriate for future versions of Mathematica. Best, Christoph On 04/06/2012 02:38 PM, Bob Hanlon wrote: > You mean MemberQ rather than ModuleQ. In MemberQ[list, expr_] a blank > (with or without a name for the blank) matches anything. > > {MemberQ[{a}, _], > MemberQ[{"a"}, _], > MemberQ[{Indeterminate}, _], > MemberQ[{ComplexInfinity}, _], > MemberQ[{Plot[x, {x, 0, 1}]}, _]} > > {True, True, True, True, True} > > > Bob Hanlon > > On Fri, Apr 6, 2012 at 6:01 AM, Christoph Lhotka > <christoph.lhotka at fundp.ac.be> wrote: >> Hello, >> >> I found and interesting subject of discussion in the post >> >> "Bug in pattern test, or I did something wrong?" >> >> >> I could trace back the problem to an issue with ModuleQ. >> >> Question: Why does >> >> In[12]:= ModuleQ[{0,1,2},expr_] >> >> Out[12]:= True >> >> evaluate to True? >> >> >> My argumentation is as follows: >> >> On the one hand there could be a chance that expr_ is 0,1 or 2 but on >> the other >> hand the probability that expr_ is not 0,1 or 2 is even higher. As a >> conclusion it should neither >> evaluate to True nor to False. >> >> In other words: Is there any reason why the expression of everything >> (named expr) >> is contained in the set {0,1,2} ? >> >> Best, >> >> Christoph >> > >

**Follow-Ups**:**Re: evaluate to True?***From:*Andrzej Kozlowski <akozlowski@gmail.com>

**References**:**Why does ModuleQ[{0,1,2}, expr_] evaluate to True?***From:*Christoph Lhotka <christoph.lhotka@fundp.ac.be>