 
 
 
 
 
 
Re: Recursion
- To: mathgroup at smc.vnet.net
- Subject: [mg25938] Re: [mg25925] Recursion
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Fri, 10 Nov 2000 02:40:16 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Here are a couple of quick attempts (programmed without concern for
efficiency):
In[1]:=
f1[{}] := {{}, {}}; f1[{x_}] := If[Last[x] < 9.5, {{x}, {}}, {{}, {x}}];
f1[{l__, x_}] := 
  If[Last[x] < 9.5, Insert[f1[{l}], x, {1, -1}], Insert[f1[{l}], x, {2,
-1}]]
In[2]:=
f1[{{"poiu", 12}, {"asdfghjkl", 5}, {"qwerty", 18}, {"zxcvbnm", 8}}]
Out[2]=
{{{"asdfghjkl", 5}, {"zxcvbnm", 8}}, {{"poiu", 12}, {"qwerty", 18}}}
In[3]:=
f2[{}] := {{}}; f2[{a_}] := {{a}, {}};
f2[{a_, l__}] := Sort[Join[f2[{l}], Map[Append[#, a] &, f2[{l}]]]]
In[4]:=
f2[{1, 2, 3}]
Out[4]=
{{}, {1}, {2}, {3}, {2, 1}, {3, 1}, {3, 2}, {3, 2, 1}}
In the case of the second function the sorting  is not the same as in your
message but I assumed that that was not important for you. One can fix this
of course but it will make the code even more inefficient.
-- 
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
http://sigma.tuins.ac.jp/
on 00.11.9 5:04 PM, Carlos Baeta Silva at carlos.silva at tcontas.pt wrote:
> Hello!
> 
> 1. Someone can tell me how I can define a function (using recursion) that
> apllies to a list of this kind:
> 
> {{"poiu", 12},{"asdfghjkl",5},{"qwerty",18},{"zxcvbnm",8}}
> 
> returns {  { {"asdfghjkl",5},{"zxcvbnm",8} }, { {"qwerty",18} },{"poiu",12}
> }  } values <9.5 in one sublist and > in the other.
> 
> And apllies to {} return {{},{}}
> 
> I made this but I can put the sublists inside the empty brackets:
> <<...>> 
> <<...>> 
> 
> 2. Other function (using recursion too) that returns the parts of a list:
> 
> aplies to this {} returns {{}}
> to {{1}} returns {{1},{}} or {{},{1}}
> to {{1,2}} returns {{1,2},{1},{2},{}}
> 
> Thank you very much!
> 
> 

