MathGroup Archive 2005

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

Search the Archive

RE: Reevaluation of conditional arguments when the condition has changed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61078] RE: [mg61046] Reevaluation of conditional arguments when the condition has changed
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sun, 9 Oct 2005 01:36:08 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I found the answer. One has to use the old Version 1 routine Update. In this
case, Update[b] will force reevaluation.

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/

From: David Park [mailto:djmp at earthlink.net]
To: mathgroup at smc.vnet.net


Dear MathGroup,

Here is a programming problem that stumps me. We start with a condition that
is always False.

fooQ[_] := False

Then write a definition that will factor out multipliers of fooQ objects.

foo[a_ b_?fooQ] := a foo[b]

The following does not factor because b, or anything else, fails the test.

expr1 = foo[a b]
giving: foo[a b]

Now I define b as a fooQ object.

fooQ[b] := True

Now when I enter the same expression the a factors out.

foo[a b]
giving: a foo[b]

But if I reevaluate expr1 the definition is not applied.

expr1
giving:  foo[a b]

Why shouldn't I expect that to evaluate and now factor? Is there a proper
way to write the definitions so it will evaluate?

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/




  • Prev by Date: RE: Reevaluation of conditional arguments when the condition has changed
  • Next by Date: Re: Reevaluation of conditional arguments when the condition has changed
  • Previous by thread: RE: Reevaluation of conditional arguments when the condition has changed
  • Next by thread: Re: Reevaluation of conditional arguments when the condition has changed