Re: Creating a recursive function which returns a sequence
- To: mathgroup at smc.vnet.net
- Subject: [mg128492] Re: Creating a recursive function which returns a sequence
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Thu, 25 Oct 2012 01:40:53 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 10/24/12 at 3:32 AM, wei.xun.lin at gmail.com (Wei-Hsun Lin) wrote:
>I would like to create a recursive function of which the returning
>value is a sequence. For example,
>f[n_]:=Module[{}, If[n<0,Return[Sequence[]]]; Sequence[g[n],f[n-1]]
>]
>The above code doesn't work because the Sequence function was
>evaluated before it's returned.
Have you read the documentation for Sequence? My guess is this
function simply isn't designed to do what you want or perhaps
think it does. The purpose of Sequence in Mathematica is to
convert some expression into a sequence of arguments to be used
by something else. For example, suppose I had
Clear[f];
f[a_, b_, c_] := a b^c
y = c + b;
and I wanted the result
a b^c
then I could use Sequence as follows:
In[4]:= f[a, Sequence @@ y]
Out[4]= a b^c
Assuming the sequence you want returned is a mathematical
sequence, i.e., a list of values, then Nest is the function to
use. For example, here is something that returns the Fibonnaci sequence
In[5]:= g[n_] := Nest[Flatten@{#, Plus @@ #[[-2 ;;]]} &, {1, 1}, n]
In[6]:= g[4]
Out[6]= {1,1,2,3,5,8}