La Web del Programador: Comunidad de Programadores
 
    Pregunta:  23599 - FUNCIÓN QUE RETORNA EL NUMERO MÁXIMO DE UNA LISTA LISP
Autor:  Jairo Cardenas
Amigos necesito su colaboración, especialemente los expertos en LISP, necesito escribir una función que toma una lista simple de numeros como un parametro y regresa el maximo valor en la lista.

Gracias,

Jairo

  Respuesta:  miguel peña
te lo explico en pseudocodigo, para que no dependa de la implementacion.

si la lista esta vacia, devulve -infinito, para marcar un criterio.
Si la lista contiene elementos, la solucion es el max {primer elemento de la lista con la llamada recursiva sobre el resto}.

Max es una funcion que devuelve el máximo de dos numeros.

Una implementacion puede ser (en comond lisp), considerando -9999 como infinito:

(defun mayor (lista)
(cond ((null lista) -9999)
( t (max (car lista) (mayor (cdr lista))))
)
)

(defun max (n m)
cond ((< n m) m)
(t m)
)
)

Espero que esto te valga, y si alguna duda, a volver a preguntar.