Expresiones simbólicas
Todo en Wolfram Language es una expresión simbólica.
Notas para programadores de Java:
Las expresiones simbólicas proporcionan una forma extremadamente general de representar datos en una forma uniforme similar a un árbol. Ellas agregan un alto nivel de flexibilidad en la programación, permitiendo la manipulación de tanto la estructura como el contenido. Java no posee las mismas capacidades simbólicas; sin embargo atributos básicos pueden estar disponibles usando bibliotecas de terceros.
Notas para programadores de Python:
Las expresiones simbólicas de Wolfram Language proporcionan una forma muy general de representar datos dentro de una estructura uniforme con forma de árbol. Ellas agregan un alto nivel de flexibilidad a la programación, permitiendo la manipulación de tanto la estructura como el contenido. Python no cuenta con capacidades simbólicas integradas, pero puede construir expresiones arbitrarias con sintaxis simbólica de Wolfram en Python mediante la función language.wlexpr de la biblioteca de cliente Wolfram para Python.
Todas las expresiones simbólicas poseen la misma estructura fundamental: cabecera[argumentos]
Notas para programadores de Java:
La cabecera de una expresión identifica el tipo de datos u operaciones que son representadas. Distinto de Java, que se escribe de forma estática, una cabecera de expresión de Wolfram Language puede transformar durante la evaluación.
Notas para programadores de Python:
La expresión head de Wolfram Language identifica el tipo de datos u operaciones representadas y puede ser transformada en cualquier momento durante la evaluación. Cada objeto de Python que ha sido declarado class no puede ser modificado.
El argumento de una función puede ser cualquier expresión simbólica:
Wolfram Language es completamente simbólico, así que las "variables no definidas" siempre pueden valerse por sí mismas:
Notas para programadores de Java:
Objetos y primitivos no inicializados en Java generalmente toman valores predeterminados de nulo, 0 o falso, e intentar usar tales variables puede ocasionar NullPointerException u otros errores similares.
Notas para programadores de Python:
Las expresiones simbólicas de Wolfram Language le permiten a los programadores usar de forma ininterrumpida variables no definidas en sus cálculos. Las variables no asignadas en Python son consideradas "indefinidas" e intentar usarlas puede causar un NameError.
FullForm siempre muestra la estructura subyacente.
Head siempre proporciona la cabecera de una expresión; Length proporciona el número de argumentos.