Re: Do we need a When function?
- To: mathgroup at smc.vnet.net
- Subject: [mg132413] Re: Do we need a When function?
- From: Helen Read <readhpr at gmail.com>
- Date: Mon, 10 Mar 2014 04:40:53 -0400 (EDT)
- Delivered-to: email@example.com
- Delivered-to: firstname.lastname@example.org
- Delivered-to: email@example.com
- Delivered-to: firstname.lastname@example.org
- References: <email@example.com>
Use NumberQ For example: f[x_?NumberQ] := x^3 Helen Read University of Vermont On 3/8/2014 2:42 AM, David Bailey wrote: > Dear All, > > Recently I wanted to create an expression that only evaluated when x was > a number. Obviously, one way to do that is to write something like: > > If[x<1000000000000,f[x]] > > This will stay unevaluated until x is assigned to a number - as required > - but it is very ugly because it makes it hard to understand what is > going on. > > More generally, it would be nice to write an expression that will only > evaluate when an expression is true. I solved that by writing a function > When: > > SetAttributes[When, HoldAll]; > When[cond_, val_] := val /; cond > > However, my point is that this construction is sufficiently useful that > it should be built in to Mathematica, and my solution might not be > obvious to all users. > > Am I missing a simpler solution? > > Do others agree that this is an omission in the language? > > David Bailey > http://www.dbaileyconsultancy.co.uk >