MathGroup Archive 2002

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

Search the Archive

Re: Optional

  • To: mathgroup at
  • Subject: [mg33696] Re: [mg33689] Optional
  • From: Andrzej Kozlowski <andrzej at>
  • Date: Mon, 8 Apr 2002 03:04:24 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

I haven't got  Mathematica 3.0 installed anymore but if what you say is 
true the behaviour of 4.1 seems more reasonable to me. Observe that:


f[Optional[index : {_Integer }.., {1}]] := index



On the other hand


f[Optional[index : {_Integer }..., {1}]] := index



This seems perfectly logical to me. In the first case we use .. which 
means one repetition or more. Since the empty collection of arguments 
does not match this the default is used. On the other hand, in the 
second case we use ..., which means zero repetitions or more. No 
arguments matches zero repetitions so you get Sequence[] as the output.

  Andrzej Kozlowski
Toyama International University

On Saturday, April 6, 2002, at 02:49  PM, Ben Langton wrote:

> Hi all,
> I am having a problem with the Optional function which I have reduced 
> to the
> following snippet of code :
> f // Clear;
> f[Optional[index : {_Integer ...}, {1}]] := index;
> f[]
> My understanding of the Optional command is that the function f should
> accept a list of zero or more integers as its argument or, if that is
> missing, use the default value of {1}.
> Under version 3, f[] (f with no arguments) returns {1}, as I would 
> expect,
> yet under version 4.1 it returns the function evaluated.
> Can anyone shed any light on why this code acts differently under the 
> two
> different versions? What can I do to make it work as expected under 
> version
> 4.1?
> Many thanks,
> Ben Langton

  • Prev by Date: Re: Using rules from Solve
  • Next by Date: RE: Symbols using Prolog
  • Previous by thread: RE: Optional
  • Next by thread: Re: Optional