Uno de los ejemplos de Learn You a Haskell es:explícitamente determinar qué función pura de usar
pure (+) <*> Just 3 <*> Just 5
Él afirma:
Así que en primer lugar, hemos
pure (+)
, que esJust (+)
Estoy suponiendo que Haskell utiliza la inferencia de tipo en la función <*>
para determinar que la función pure
en el LHS será la de la instancia Maybe
de la clase de tipo (basado en el hecho de que estamos usando Just 5
en el RHS, y Just
es a Maybe
).
Sin embargo, ¿hay algún caso en el que tenga un valor que desee convertir en un Funcionador Aplicativo utilizando el método pure
, pero no lo va a usar de inmediato a través de la función <*>
y así Haskell puede ¿Determinar qué función de pure
usar? Si es así, ¿cómo sería el estado explícito que pure
funciona para usar?
O, es el caso de que Haskell no tratará de determinar qué pure
función hasta que el resultado de la función pure
se utiliza en un contexto (por ejemplo, cuando le da de comer a una función <*>
en algún momento)
Esta es una pregunta de inferencia de tipo. – dave4420