MathGroup Archive 2005

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

Search the Archive

Re: Returning an empty sequence


Hi Trevor,
you must prevent "Sequence[]" to be evaluated before Switch is called. 
This can be done by "Unevaluated":

f[n_] := Switch[n,
       1, "foo",
       2, Unevaluated[Sequence[]],
       3, {"bar"}];

Daniel


Trevor Baca wrote:
> What's the right way to have an expression evaluate to an empty
> sequence?
> 
> I'd like ...
> 
> f[n_] :=
>   Switch[n,
>     1, "foo",
>     2, Sequence[ ],
>     3, {"bar"}];
> 
> ... to work, but instead I get the message
> 
> Switch::"argct": "Switch called with 6 arguments. Switch must be called
> with an odd number of arguments."
> 
> meaning that the Sequence[ ] is flattened in the rhs definition of f[
> ].
> 
> Is there a way to get f[ ] to evaluate to the empty Sequence[ ] (rather
> than Null)?
> 
> Trevor.
> 


  • Prev by Date: RE: Returning an empty sequence
  • Next by Date: Adding matrices for use in NDSolve input
  • Previous by thread: RE: Returning an empty sequence
  • Next by thread: Re: Returning an empty sequence