MathGroup Archive 2005

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

Search the Archive

Reevaluation of conditional arguments when the condition has changed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61046] Reevaluation of conditional arguments when the condition has changed
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sat, 8 Oct 2005 02:49:21 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

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: How to plot solutions of equations with Mathematica?
  • Next by Date: No visualisation of unmatched brackets anymore
  • Previous by thread: Re: LU factorization and solving algorithms in Mathematica
  • Next by thread: Re: Reevaluation of conditional arguments when the condition has changed