Buenos días,traza entendimiento *
Al intentar entender secuencia de evaluación del Mathematica 's mediante el uso de estándares Trace
y TraceScan
comandos y sus buenas representaciones visuales desarrollados en la reciente thread, que se enfrentó a algunas ambigüedades en su comportamiento .
En primer lugar, cuando se evalúo
En [1]: = Traza [a + 1, TraceOriginal-> Real]
consigo
de salida [ 1] = {a + 1, {Plus}, {a}, {1}, a + 1,1 + a, {Plus}, {1}, {a}, 1 + a}
Todas las sublistas corresponden a sub-evaluaciones (como se indica en la Documentación). La última expresión 1+a
corresponde probablemente al resultado de la evaluación, aunque no está claramente indicada en la Documentación. Pero, ¿qué significa exactamente las expresiones a+1
y 1+a
en el medio de la lista? ¿A cuáles pasos de evaluación de the standard evaluation sequence corresponden?
La segunda rareza es con TraceScan
. Considere lo siguiente:
En [1]: = list = {}; TraceScan [AppendTo [list, StyleForm [#, "Input"]] &, (a + 1), _, AppendTo [list, #] &]; lista
Fuera [1] = {a + 1, Plus, Plus, un, a, , 1, 1 + a, Plus, Plus, , 1, un, a, 1 + a, a + 1}
se puede ver que las dos últimas expresiones de la lista son 1+a
y a+1
. Ambos son resultados de (sub) evaluaciones. Pero la salida real es 1+a
y entonces no entiendo por qué a+1
está al final de la cadena de evaluación? ¿Y por qué no hay a+1
en el medio de la cadena de evaluación como en el caso de Trace
? ¿Es un error?
P.S. Estos resultados se reproducen con Mathematica 7.0.1 y 5.2.
Creo que esto se debe migrar a: http://math.stackexchange.com/ – RobertPitt
@RobertPitt Esta pregunta no es sobre matemática. Está relacionado solo con las partes internas de * Mathematica *. Como puede ver, utilizo el ejemplo más primitivo posible: evaluación de la expresión 'a + 1' en * Mathematica * cuando' a' no está definido. Estoy tratando de entender qué sucede dentro de * Mathematica * cuando evalúo esto. Parece que no es tan simple como uno podría esperar ... –
@RobertPitt Este es un malentendido común. La etiqueta Mathematica se refiere al programa Mathematica desarrollado por Wolfram Research Inc. No es equivalente a _Mathematics_ o _math_. Ver también http://meta.stackexchange.com/q/81152/158668. –