Estoy buscando la forma estándar de representar el infinito negativo en Lisp. ¿Hay algún valor simbólico que las funciones aritméticas de Lisp reconozcan como menos que todos los demás números?Infinito negativo en Lisp
Específicamente, estoy buscando una manera elegante de escribir lo siguiente:
(defun largest (lst)
"Evaluates to the largest number in lst"
(if (null lst)
***negative-inifinity***
(max (car lst) (largest (cdr lst)))))
Gracias. No sabía que Max tomaba una cantidad arbitraria de argumentos, pero eso proporciona una solución elegante. – jforberg
Dado que las funciones en Common Lisp no permiten listas arbitrarias de argumentos largos, lo mejor es reemplazar APLICAR con REDUCIR. Vea el valor de la variable CALL-ARGUMENTS-LIMIT. Una implementación admite hasta listas largas de argumentos CALL-ARGUMENTS-LIMIT. En su ejemplo, esto significaría que una implementación puede fallar al calcular el máximo en CALL-ARGUMENTS-LIMIT + 1 listas largas. Tenga en cuenta que este valor de CALL-ARGUMENTS-LIMIT puede ser tan pequeño como 50 (!). –
@RainerJoswig: Oh, tienes toda la razón. – Daimrod