I have a list of lists. My purpose is to append a new elements to this
list. These elements are generated by some function. Sometimes the
output of the function is an empty list meaning no element. In this
situation Append includes the new element in the list. i would like to
avoid this behaviour.
ex:
In[1]:= d={}
Out[1]= {}
In[2]:= Append[{{2,2},{3,3}},d]
Out[2]:= {{2,2},{3,3},{}}
Thanks in advance. Felix Farkas
Perhaps this might be useful:
In[1]:= appendnoemptylistTo[expr_, {}] := expr
In[2]:= appendnoemptylistTo[expr_, elem_] := AppendTo[expr, elem]
In[3]:= b = d = e = {};
In[7]:= collector = {};
In[8]:=
Scan[appendnoemptylistTo[Unevaluated[collector], #] &, {a, b, c, d, e, f}]
In[9]:= collector
Out[9]= {a, c, f}
Kind regards,
Hartmut Wolf
the good old If[] is not working any more ?
If[d=!={},
AppendTo[list,d]
]
your ReplaceAll
AppendTo[list,d] /. {}-> Sequence[]
is broken too ?
The pattern matcher don't work with
myAppend[lst_, {}] := lst
myAppend[lst_, ll_] := Append[lst, ll]
lst=myAppend[lst,d]
Than I have no idea
Regards
Jens
Felix Farkas wrote:
>
> Hello,
> i do have a problem, which is probably very easy, but i couldn't find
> a reasonable way to solve it. I would appreciate very much any hint.
>
> I have a list of lists. My purpose is to append a new elements to this
> list. These elements are generated by some function. Sometimes the
> output of the function is an empty list meaning no element. In this
> situation Append includes the new element in the list. i would like to
> avoid this behaviour.
>
> ex:
>
> In[1]:= d={}
> Out[1]= {}
>
> In[2]:= Append[{{2,2},{3,3}},d]
> Out[2]:= {{2,2},{3,3},{}}
>