¿Alguien puede darme una explicación fácil de entender de una ecuación guardada como se usa en Haskell y también su sentido matemático?Ecuaciones guardadas en Haskell
Respuesta
Las protecciones Haskell se pueden ver como una función matemática definida por partes sobre la entrada.
foo x | x < 0 = bar
| x < 5 = baz
| x < 20 = quux
| otherwise = quaffle
se escribiría por un matemático como:
foo(x) = { bar, if x < 0
baz, if x >= 0 && x < 5
quux, if x >= 5 && x < 20
quaffle, if x >= 20
Cada uno de los guardias en una función Haskell lleva implícita la negación de todos los guardias que lo preceden, ya que se trataron uno tras otro.
Haskell elige escribir la guarda a la izquierda del signo igual para facilitar el seguimiento del flujo de control. Si elige leer el | como 'tal que' entonces se vuelve bastante intuitivo.
Una ecuación guardada es la construcción equivalente de Haskell de piecewise function.
Una ecuación guardada es una ecuación (una afirmación sobre una igualdad) que implica lo que se llama distinción de caso . Un ejemplo es:
fac :: Integer -> Integer
fac n | n > 0 = n * fac (n - 1)
| otherwise = 1
Esta es una definición de la factorial function. Los matemáticos escribir,
0! = 1, por definición. Para todos los valores n mayor que , n! se puede definir en términos de (n - 1)!. ¡Este no es el caso para 0!. Esa es la razón por la cual se deben distinguir dos casos. Y eso es lo que hace una ecuación cautelosa.
- 1. Ecuaciones diferenciales en Python
- 2. Ecuaciones diferenciales en Java
- 3. Resolviendo ecuaciones en .NET
- 4. ¿Cómo escribir ecuaciones en html?
- 5. Resolviendo ecuaciones polinomiales en Python
- 6. Análisis de ecuaciones en Python
- 7. Bloque de ecuaciones de la izquierda de ecuaciones
- 8. biblioteca para visualizar ecuaciones matemáticas (como un editor de ecuaciones)
- 9. Mostrando ecuaciones Mathml
- 10. Starfield Screensaver Ecuaciones
- 11. Javadoc con ecuaciones?
- 12. Angular Momentum Transfer ecuaciones
- 13. Cómo vectorizar ecuaciones?
- 14. ¿Dónde almacena Internet Explorer las contraseñas guardadas?
- 15. Preferencias compartidas solo guardadas la primera vez
- 16. ¿Cómo puedo resolver ecuaciones en Python?
- 17. Manipulación de ecuaciones matemáticas en Python
- 18. Cómo representar ecuaciones matemáticas en Android
- 19. Herramientas para intercambiar ecuaciones en el código
- 20. ¿Cómo funcionan las ecuaciones matemáticas en Java?
- 21. Proceso de ecuaciones matemáticas en php
- 22. Resolviendo sistemas de ecuaciones en R
- 23. programa para resolver ecuaciones en C#
- 24. Resolviendo numéricamente ecuaciones no lineales
- 25. Resolviendo sistemas lineales de ecuaciones
- 26. Editor de ecuaciones WYSIWYG incrustado
- 27. Imágenes perdidas en FlowDocument guardadas como documento XPS
- 28. Obtener todas las alarmas guardadas en la aplicación de alarma
- 29. MPMoviePlayer carga y reproduce películas guardadas en documentos de aplicaciones
- 30. ORMLite e imágenes guardadas como BLOB en Android
Entonces, ¿es como ejecutar una función en una condición que ... y dependiendo de la condición, ejecutará solo esa función donde la condición es verdadera, y todas las condiciones previas habrán sido falsas? ¿derecho? –
"quaffle" ... esa es una nueva para mí: D –
Leí el "|" como "cuando": 'foo x, cuando x <0, = barra ... cuando x <5, = baz' y así sucesivamente. Sin embargo, no se debe confundir con 'cuándo '. – Nefrubyr