select all x in L



I don't know what the elements of the list V_ look like.  If they are all
symbols, like x y z then
you could try
ans:0$
for i in V do ans:ans+i$

Then the list looks like 3*z+4*y+x    etc.  And you can make it into a list
[3*z,4*y,x]
By using substpart(ans,0,"["). Or you can pick out the coefficients by using
coeff.


Or if the elements are numbers, try
For i in V do ans:ans+histogram[i].

The algorithm you propose is quite inefficient, but maybe that doesn't
matter to you.

You could also sort the list, and then count the runs.

Or you could do    for i in V do histogram[i]:histogram[i]+1,   and then
look at arrayinfo(histogram).



RJF


> -----Original Message-----
> From: maxima-bounces at math.utexas.edu 
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of Wolfgang Lindner
> Sent: Wednesday, May 23, 2007 2:32 PM
> To: maxima-help
> Cc: Sebastian Scigala
> Subject: select all x in L
> 
> dear group,
> 
> currently we (me and my students) are studying a book on 
> elementary probability theory
> (with use CAS DERIVE as assistent) and are porting some of 
> the code to (wx)Maxima 5.12.
> Some of the basic concepts we will define ab ovo, before we 
> will switch to Mario
> Riotorto's massive application package 'descriptive.mac' in 
> order to draw histograms etc.
> 
> One early problem is to define the 'frequency of a in list v_'.
> The Derive code is:
>                      H(a, v_) := DIM(SELECT(x = a, x, v_))
> 
> I defined the helper function 
> (%i1)  select(a,L) := block([LL:[]], for x in L do if x=a 
> then LL:cons(x,LL),LL)$
> (%i2)  select(2,[3,2,4,2]);
> (%i3)  H(a,L):= length(select(a,L));
> (%i4)  H(2,[3,2,4,2,5]);
> (%o4)  2
> which seems ok.
> 
> Q1: is there a predefined function 'select' (with another 
> name?) in Maxima
>     I have overlooked?
> Q2: I would like to have a 'more functional and general' 
> version of select.
>     Does a member of the Maxima community has some hints?
> 
> -- 
> HTH  Wolfgang
> 
> 
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>