, Монадические вычисления могут использовать чистые вычисления, но не наоборот.
аюсь конвертироватьIO [String]
в[String]
с участием<-
связывание; Тем не менее, мне нужно использоватьdo
блок, чтобы сделать это подwhere
заявление, но Haskell постоянно жалуется на отступы. Вот код:
decompEventBlocks :: IO [String] -> IO [[String]]
decompEventBlocks words
| words' /= [] = block : (decompEventBlocks . drop $ (length block) words')
| otherwise = []
where
do
words' <- words
let block = (takeWhile (/="END") words')
В чем причина этого? И как мы можем использоватьdo
блок вwhere
заявление ? Более того, есть ли шанс, что у нас могут быть какие-то заявления перед охранниками?