No lo hace! Es solo una definición de . Si desea tener alguna intuición al respecto, puede elegir algunos valores para aplicarlos.
> let g = Just (+2); y = Solo 3 en g y
Solo 5
> let g = Nada; y = Solo 3 en g y
Nada
> let g = Just (+2); y = Nada en g y
Nada
De acuerdo, al menos para la mónada Quizás, la función envuelta en el argumento izquierdo se aplica al valor envuelto en el argumento derecho, a menos que cualquiera de los valores sea Nothing, entonces obtenemos Nothing. Eso debería darnos algo de intuición.
Alternativamente, podría intentar reformular la definición de una manera que pueda ser más clara para usted. Aquí hay un intento.
- ¿Podemos probar LHS = RHS multiplicando 0 en ambos lados?
- Cómo resolver esto: [matemáticas] \ displaystyle \ int \ dfrac {x ^ 2 + 20} {\ left (x \ sin x + 5 \ cos x \ right) ^ 2} \ mathrm {d} x
- Cómo demostrar que el límite a medida que x se acerca a 3 de x ^ 2 es 9 usando la definición epsilon-delta
- ¿Cuál es la raíz cuadrada de 99?
- ¿Cuál es el factorial de 2n?
f a = (\ f ‘-> return. f’ = << a) = << f
– Primero voltearé los operadores de enlace.
f a = f >> = \ f ‘-> a >> = retorno. F’
– Luego abstraiga la variable del enlace interno
f a = f >> = \ f ‘-> a >> = \ a’ -> (return. f ‘) a’
– Y reescribir en notación do
f a = do
f ‘<- f
a ‘<- a
volver (f ‘a’)
En el contexto de nuestro ejemplo usando la mónada Quizás, quizás ahora pueda ver lo que está sucediendo. Intentamos vincular los valores envueltos f ‘y a’, y dado que es la mónada Quizás, hacemos un corto al resultado Nothing si f o a es Nothing. Si no, aplicamos f ‘a a’ y ajustamos el resultado en Just (la definición de retorno para Quizás). Como ya sabrán, los resultados pueden ser drásticamente diferentes para otras mónadas, pero pensar en uno a la vez es bastante útil. . ¡Ahora puedes intentar resolverlo con, quizás, list!