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. |