Patrones
Notas para programadores de Java:
El lenguaje de patrones de Wolfram Language le permite escribir patrones para estructuras arbitrarias simbólicas, permitiendo una potente manipulación similar a la de regex para ser generalizada para cualquier expresión y cualquier forma de datos.
Notas para programadores de Python:
El lenguaje de patrones de Wolfram Language le permite describir patrones para estructuras arbitrarias simbólicas, permitiendo una potente manipulación similar a la de regex para ser generalizada para cualquier expresión y cualquier forma de datos.
Los patrones representan clases de expresiones. El constructo básico de patrón _ (se pronuncia "blank") representa cualquier expresión.
Encuentre los casos en una lista que concuerden con el patrón f[_]:

Cases[{f[1], g[2], f[5], g[3]}, f[_]]

x_ (abreviatura de x:_) representa un patrón cuyo valor será nombrado x:


Replace[f[100], f[x_] -> x + 5]

/. significa "reemplazar en todas partes":

{f[1], g[2], f[5], g[3]} /. f[x_] -> x + 5

Notas para programadores de Java:
Este tipo de metaprogramación estructural que aquí se muestra es única en la estructura simbólica de Wolfram Language.
Notas para programadores de Python:
La metaprogramación estructural que se muestra aquí, la cual trata el código y los datos de la misma manera, es única en la estructura simbólica de Wolfram Language.
__ ("double blank") representa cualquier secuencia de expresiones:

Cases[{f[1, 2], f[1], g[3]}, f[__]]

a | b | c presenta a, b o c:

Cases[{f[1], g[2], f[2], f[5], g[3]}, f[1 | 5]]

Notas para programadores de Java:
Este uso de | se asemeja a la notación de expresiones regulares de Java, aunque en Java | también puede indicar un OR a nivel de bits.
Notas para programadores de Python:
| es usado en patrones de Wolfram Language de forma similar al uso de expresiones regulares en Python. Sin embargo, en Wolfram Language, | funciona para cualquier tipo de concordancia simbólica de patrones, no solo para cadenas de caracteres.
También trabaja con cabeceras:

Cases[{f[1], g[2], f[2], f[5], g[3]}, (f | g)[2]]

_h representa cualquier expresión con cabecera h:

Cases[{1, 2.5, 3.5, 4}, _Real]

:> es una norma de retraso, la análoga de := para una regla.
REFERENCIA RÁPIDA: Operaciones que involucran patrones