From: José L. T. H. <jos...@gm...> - 2011-02-22 07:29:37
|
El 21 de febrero de 2011 23:54, Jaime Villate <vi...@fe...> escribió: > On Mon, 2011-02-21 at 22:48 +0100, José Luis Torre Hernández wrote: > > Existe alguna función que sume los elementos de una lista, similar a: > > > > (+ 1 2 3) > Esto no te sirve?: > > (%i8) a:[1,2,3,4,5]; > (%o8) [1, 2, 3, 4, 5] > (%i9) sum(a[i],i,1,length(a)); > (%o9) 15 > > Saludos, > Jaime > > > Tengo: aleaBinomial(n,p):=(x:0, for i from 1 thru n do if i=n then return (x) else (if random(1.0)\<less\>p then x:x+1)) ventas:makelist(aleaBinomial(20,0.05), x, 1, diasLaborables) así la siguiente expresión funciona como había pensado sum(ventas[i],i, 1, length(ventas)) sin embargo, lo siguiente no me funciona: apply("+", ventas) proporciona: apply("+", [ 0,1,1,1,2,2,01,0,0,1,0,1,2,0,0,2,0,1,...]) es decir, evalúa la variable ventas, pero no aplica la función. Creo que existe algún tipo de QUOTE y EVAL. He probado con la "tide invertida" que se utiliza en los scripts del shell, pero no me funciona. Muchas gracias por su atención José Luis |