2012-03-19 14 views
14

En un tutorial Haskell me encontré con el siguiente código:¿Cuál es el alcance de let cuando se usa sin?

do [...] 
    let atom = [first] ++ rest 
    return $ case atom of 

Tenga en cuenta que la expresión let no cuenta con un bloque de in. ¿Cuál es el alcance de dicha expresión let? La siguiente línea?

+1

'[primera] ++ rest' es bastante extraño, también, debe ser' primero: rest' – configurator

Respuesta

8

El alcance es el resto del bloque do.

See §3.14 of the Haskell Report (específicamente, el cuarto caso en el bloque de traducción). (Sí, esta es la sección sobre do bloques, porque let sin in sólo es válida dentro de un bloque do, como señala Porges.)

+2

Obsérvese también que '' sin let' in' solo es válido dentro de un bloque 'do'. – porges

Cuestiones relacionadas