MathGroup Archive 2005

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

Search the Archive

Reevaluation of conditional arguments when the condition has changed


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