Tengo una pregunta muy simple. Me gustaría usar una cláusula where después de un bloque de código que usa operadores de enlace, pero obtengo un error de compilación.Haskell: ¿Puedo usar una cláusula where después de un bloque con operadores de vinculación (>> =)?
Aquí está un ejemplo sencillo:
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
print list'
where list' = reverse list -- test1.hs:5:28: Not in scope: `list'
puedo utilizar una cláusula let para la lista' como en
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
let list' = reverse list -- works of course
in print list'
pero me gusta mucho si podía usar una cláusula where. ..
también probé con la notación do
main = do
putStrLn "where clause test:"
list <- return [1..10]
print list'
where list' = reverse list --test3.hs:5:30: Not in scope: `list'
Mismo problema. ¿Puedo usar una cláusula Where en estas circunstancias?
Gracias, tu ejemplo con más paréntesis lo aclara. –