El 21 de febrero de 2011 23:54, Jaime Villate <villate@fe.up.pt> 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



Hola a todos:

He definido la función:

      sumaLista(lista):= if lista=[] then return(0) else (return (apply("+", lista)))

y proporciona el siguiente mensaje (además de obtener correctamente la suma):


`return' not in `block'

a pesar de que puedo simplificar la definición de la función ya que puedo definir

sumaLista(lista):= apply("+", lista)

Me interesaría conocer, para otras ocasiones, a qué se debe el error, qué tipo de corchetes o qué paréntesis me faltan.

Atentamente
José Luis