Re: BlankSequence
- To: mathgroup at smc.vnet.net
- Subject: [mg59194] Re: BlankSequence
- From: dh <dh at metrohm.ch>
- Date: Mon, 1 Aug 2005 01:05:12 -0400 (EDT)
- References: <dchois$864$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Daniele,
consider the following function:
f1[Lista__,options___]:= ...
lista can have at least 1 argument, options 0 or more. Note that we now
have several ways to assigne arguments to lista and options. Define now:
f1[lista__, options___] := Module[{listaUV},
Print["Lista=", {lista}];
Print["Options=", {options}];
]
and try:
f1[1,2]
this gives
Lista={1}
Options={2}
further try:
f1[1,2,3]
gives:
Lista={1}
Options={2,3}
certainly not what you expected.
Here is work around:
f2[{lista__},options___]:=..
Note that if you redefine the left hand side, make sure you first clear
the symbol, e.g. Clear[f2].
Further, you can not Map a function to a Sequence like in your example:
listaUV = {...} & /@ lista
You must Map to a List:
listaUV = {...} & /@ {lista}
sincerely, Daniel
Daniele Lupo wrote:
> Hi to everyone.
>
> I'm woking with a function, and I've a problem with the blank sequence. My
> function is defined in this way:
>
> ListSmith[lista__, options___]:= Module[{listaUV},
> listaUV = {RXToU[#[[1]], #[[2]]], RXToV[#[[1]], #[[2]]]} & /@ lista;
> MultipleListPlot[listaUV, options]
> ]
>
> Now, when I put a single list as augment of the function, in this way
>
> ListSmith[list1, PlotJoined->True]
>
> All works OK. When I define more lists, instead, in this way, for example:
>
> ListSmith[list1, list2, PlotJoined->True]
>
> both lists are drawn, but only the first is elaborated by the first command
> of the function, while the second list (and others, when they are present),
> are not modified in listaUV.
>
> I'd like to modify every list that appears like augment in my function,
> instead that only the first.
>
> Anyone has some idea about it?
>
> Thanks for answers
>
> Daniele
>
>