У меня очень простой вопрос. Я хотел бы использовать предложение where после блока кода, который использует операторы связывания, но я получаю ошибку компиляции.Haskell: Могу ли я использовать предложение where после блока с операторами привязки (>> =)?
Вот простой пример:
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
print list'
where list' = reverse list -- test1.hs:5:28: Not in scope: `list'
я могу использовать пункт LET для списка»как в
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
let list' = reverse list -- works of course
in print list'
, но я бы очень понравилось, если бы я мог бы использовать где положение. ..
Я также попытался с сделать нотации
main = do
putStrLn "where clause test:"
list <- return [1..10]
print list'
where list' = reverse list --test3.hs:5:30: Not in scope: `list'
Такая же проблема. Могу ли я использовать предложение where в этих обстоятельствах?
Спасибо, ваш пример с большим количеством скобок очищает его для меня. –