Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

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
>>
>
>




  • Prev by Date: Re: Evaluating Exponential functions
  • Next by Date: Text["x=" x] reverses order of terms producing the string: 1.2 x=
  • Previous by thread: Re: evaluate to True?
  • Next by thread: Re: evaluate to True?