Re: Reevaluation of conditional arguments when the condition has changed

• To: mathgroup at smc.vnet.net
• Subject: [mg61074] Re: [mg61046] Reevaluation of conditional arguments when the condition has changed
• From: Chris Chiasson <chris.chiasson at gmail.com>
• Date: Sun, 9 Oct 2005 01:35:48 -0400 (EDT)
• References: <200510080649.CAA20991@smc.vnet.net>
• Reply-to: Chris Chiasson <chris.chiasson at gmail.com>
• Sender: owner-wri-mathgroup at wolfram.com

```Looking at your example, I noticed that typing foo[a b] directly gives
the right result, but not evaluating expr1. So strange.

On 10/8/05, David Park <djmp at earthlink.net> wrote:
> 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
>
>
>

--
Chris Chiasson
http://chrischiasson.com/contact/chris_chiasson

```

• 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: Reevaluation of conditional arguments when the condition has changed
• Next by thread: Re: Reevaluation of conditional arguments when the condition has changed