flo*_*oAr 1 string state haskell functional-programming
我需要在haskell周围环绕状态monad,我有一些问题.任务是实现一个函数countConcat,它将字符串与状态monad和一个函数extractCC连接起来,后者得到这个函数的结果.
所以extractCC ((return 0) >>= countConcat "a" >>= countConcat "b" >>= countConcat "c")
会产生(3,"abc")
据我所知,countConcat会是一种操纵函数,而extractCC应该包含某种runState,对吧?
任何使我进入正确方向的tipps或资源都非常受欢迎.(我已经通过了wiki和learnyouahaskell部分,但仍然对此非常愚蠢)
先试试这个
concat' :: String -> State (Int,String) ()
concat' s = do
(c,st) <- get
put (c+1, st ++ s)
Run Code Online (Sandbox Code Playgroud)
你可以运行它
> runState ( concat' "A" >> concat' "B" >> concat' "C" ) (0,"")
((),(3,"ABC"))
Run Code Online (Sandbox Code Playgroud)
我想如果您了解状态monad,您可以根据需要修改上述示例.
归档时间: |
|
查看次数: |
755 次 |
最近记录: |