Recuerdo haber visto una receta para tomar una expresión y evaluar cada Cabezal que coincide con el patrón x, dejando las subexpresiones con cabezas que no coinciden sin evaluar. Ya no puedo encontrar esta receta, ¿alguien sabe la forma correcta de hacerlo?¿Evaluar solo un tipo de cabeza particular en la expresión?
7
A
Respuesta
5
Este es de Ted Ersek's Mathematica Tricks under "Clever Little Programs".
Gracias a @TomD para el puntero.
EvaluatePattern[expr_,pattn_]:=expr/.Pattern[p, pattn]:>With[{eval=p},eval/;True]
In[368]:= test = HoldForm[7 (1 + 2 - 2^2) (8 + 8)];
EvaluatePattern[test, _Plus] //InputForm
Out[369]= HoldForm[7*-1*16]
Editar
Parece que funciona también con retención [], pero nunca hizo una prueba de profundidad.
Cuestiones relacionadas
- 1. Evaluar la expresión simbólica
- 2. Evaluar expresión condicional
- 3. Evaluar expresión citada en F #
- 4. evaluar la expresión antes de que se ponga en lambda
- 5. Evaluar la expresión de Sympy de una matriz de valores
- 6. expresión de Cron particular, la fecha
- 7. Python - Evaluar la expresión matemática dentro de la cadena
- 8. ¿Cómo obtengo solo la cabeza de la gitosis?
- 9. ¿Cuál es la forma correcta de python para escribir métodos que solo toman un tipo particular?
- 10. ¿Mejor algoritmo para evaluar una expresión matemática?
- 11. Cómo evaluar una expresión en notación de prefijo
- 12. ¿Cómo evaluar una sola expresión en modo Haskell para Emacs?
- 13. Cómo evaluar una expresión matemática personalizada en Python
- 14. C# - nulo vs "No se pudo evaluar la expresión"
- 15. Tipo de retorno en la expresión Si
- 16. evaluar una expresión aritmética almacenada en una cadena (C#)
- 17. Cómo parchar solo un trozo particular de un diff
- 18. Averiguar si una expresión contiene un parámetro "solo" ParameterExpression
- 19. ¿Cómo puedo evaluar una expresión XPath en Silverlight?
- 20. Referencia javax.script.ScriptEngine en Android o evaluar una expresión javascript
- 21. Evaluar una cadena como expresión matemática en JavaScript
- 22. Dolor de cabeza Regex
- 23. No se puede evaluar la expresión porque un marco nativo está en la parte superior de la pila de llamadas
- 24. Cómo determinar si una excepción es de un tipo particular
- 25. Typecast a un tipo de solo la cadena de representación del tipo nombre
- 26. evaluar mediante programación una expresión de frijoles con expresión de Primavera Idioma
- 27. Obteniendo la raíz (cabeza) de un DiGraph en networkx (Python)
- 28. Evaluar expresiones de conjuntos
- 29. Depuración mientras está en pausa y 'no se puede evaluar la expresión'
- 30. cómo eliminar un valor de columna particular solo en la base de datos postgresql?
Esto se discute en los Trucos de Mathematica de Ted Ersek en "Pequeños programas inteligentes". http://www.verbeia.com/mathematica/tips/Tricks.html – tomd
@TomD Updated.Thanks mucho! –