NaN rompe la lógica de Python y Lua: dos casos que revelan su rareza

Two Case Studies of NaN

El autor explora cómo el valor NaN (Not a Number) de IEEE-754, al no ser igual a sí mismo, rompe suposiciones implícitas en el diseño de lenguajes de programación. En Python, la comparación de listas usa primero la identidad, por lo que `[nan] == [nan]` devuelve `True` aunque `nan == nan` sea `False`. En Lua, los bucles `for` numéricos con NaN producen resultados inesperados: a veces se ejecutan una vez, a veces nunca, y NaN como paso se trata como negativo. El autor señala que estos comportamientos no están documentados y sugiere que se debería detectar y rechazar NaN explícitamente.

Usar NaN provoca que el operador de comparación específico que usa la implementación se filtre en el comportamiento del intérprete.

Más de este día

2026-07-14