相关疑难解决方法(0)

如何在函数式编程中增加变量

如何在函数式编程语言中增加变量?

例如,我想这样做:

main :: IO ()
main = do
    let i = 0
    i = i + 1
    print i
Run Code Online (Sandbox Code Playgroud)

预期产量:1.

haskell functional-programming

17
推荐指数
2
解决办法
2万
查看次数

在where子句下做声明

我想转换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')
Run Code Online (Sandbox Code Playgroud)

这是什么原因?我们如何dowhere声明中使用块?而且,我们是否有机会在警卫面前发表一些声明?

monads haskell scope functional-programming do-notation

-1
推荐指数
1
解决办法
432
查看次数