       Re: Piecewise vs. /; ?

• To: mathgroup at smc.vnet.net
• Subject: [mg104035] Re: Piecewise vs. /; ?
• From: Szabolcs Horvát <szhorvat at gmail.com>
• Date: Fri, 16 Oct 2009 07:20:25 -0400 (EDT)
• References: <hashpc\$qu8\$1@smc.vnet.net> <hav19a\$4gr\$1@smc.vnet.net> <hb70d0\$8uj\$1@smc.vnet.net>

```On 2009.10.15. 13:17, Dan Dubin wrote:
> Folks --
>
> I would respectfully disagree with the idea that /; is more general
> than Piecewise. The example given, a function that returns a
> different value in the morning than the evening, is simply a
> time-dependent function that could be constructed using Piecewise, as
> in
>
> f[x_,h_] =  Piecewise[{{x, h<  12}, {-x, h>= 12}}];
>
> and called via
>
> f[x,DateList[]]
>
>
>    In fact, it seems to me that any difference in the way that
> Mathematica interprets Piecewise and conditionals should be removed
> from later editions of Mathematica, since as far as I can see the
> difference between them is merely a Mathematica-specific  matter of
> the mechanics of how the expressions are evaluated with little (or
> no?) utility, that causes considerable confusion among new users. I
> don't see any benefit in this distinction, but feel free to convince
> me otherwise!
>

Piecewise[] is explicitly designed to be used to represent a
mathematical concept, piecewise functions.  Mathematical operations,
like D[], can be applied to it.

For example,

D[Piecewise[{{1, x > 0}}, 0], x]

/; can be used with patterns (or, as a more special use, with :=
definitions or Module).  It cannot be used to compose a standalone
mathematical expression like Piecewise can.

Actually Piecewise[] is much closer to Which[] than to /;.  But again,
Which[] is a programming construct, not something that is meant to be
used as a mathematical expression.  The following does not work as
expected from a mathematical point of view:

D[Which[x > 0, 1, True, 0], x]

There are many differences between how these three types of expressions
are (or are not) evaluated, making Piecewise[] suitable for mathematical
use, but unwieldy for programming/pattern matching use.

The overlap between programming and mathematical use of some constructs
(for example, "functions") can already cause confusion in Mathematica.
I can see how a programming use of Piecewise could be forced... but I
think that it was a good decision to try to separate these two kinds of
uses in this case.

```

• Prev by Date: Re: Streaming Real-Time Stock Quotes in Mathematica
• Next by Date: Re: Packaged Dynamic Problem
• Previous by thread: Re: Piecewise vs. /; ?
• Next by thread: Re: Piecewise vs. /; ?