Prevención de avalanchas de errores de tiempo de ejecución en Mathematica

Una situación típica con la que me encuentro cuando el cuaderno crece más allá de un par de funciones: evalúo una expresión, pero en lugar de la respuesta correcta obtengoBip seguido de docenas de advertencias inútiles seguidas de "más Producción de ... será suprimida"

Una cosa que encontré útil: utilice las funciones internas de "afirmar" similares a Python para hacer cumplir la consistencia interna. ¿Algún otro consejo?

Assert[expr_, msg_] := If[Not[expr], Print[msg]; Abort[], None]

editar 14/11 Una causa general de una avalancha de advertencia es cuando una subexpresión se evalúa como un valor "malo". Esto hace que la expresión padre se evalúe como un valor "malo" y esta "maldad" se propaga hasta la raíz. Las incorporaciones evaluadas en el camino notan la maldad y producen advertencias. "Malo" podría significar una expresión con un encabezado incorrecto, una lista con un número incorrecto de elementos, una matriz definida negativa en lugar de una definida positiva, etc. Generalmente, es algo que no encaja con la semántica de la expresión principal.

Una forma de lidiar con esto es redefinir todas sus funciones para que no se evalúen con una "entrada incorrecta". Esto se encargará de la mayoría de los mensajes producidos por elementos integrados. Los elementos integrados que realizan operaciones estructurales como "Parte" aún intentarán evaluar su valor y pueden generar advertencias.

Tener el depurador configurado para "interrumpir mensajes" evita una avalancha de errores, aunque parece una exageración tenerlo encendido todo el tiempo

Respuestas a la pregunta(5)

Su respuesta a la pregunta