2012-08-10 18 views

Respuesta

16

De acuerdo con el informe de Haskell, section 3.12:

Deje expresiones tienen la forma general sea {d1; ...; dn} en e, e introduzca una lista anidada, de alcance léxico y mutuamente recursiva de las declaraciones (let a menudo se llama letrec en otros idiomas). El alcance de las declaraciones es la expresión ey el lado derecho de las declaraciones.

(énfasis mío)

Así que en el segundo let, donde x = x * x, todos x s se refieren a la misma ligadura, ninguno se refiere a la exterior x = 4 vinculante.

+1

Da la respuesta a tu pregunta: ¡agradable! ^^ –

Cuestiones relacionadas