import Control.Monad.State
type Stack = [Integer]
pop :: State Stack Integer
pop = state $ \(x:xs) -> (x, xs)
push :: Integer -> State Stack ()
push x = state $ \xs -> ((), (x:xs))
main :: IO()
main = print $ runState `enter code here` [1,2,3,4]
使用“ pop >> =(\ s1-> pop >> =(\ s2-> push
enter code here
)”,我应该在这里写什么?
编译器可以找出类型以填充空白。如果我_
在代码中添加一个孔
add = pop >>= \s1 -> pop >>= \s2 -> push _
编译器告诉我它应该具有type Integer
。
Found hole `_' with type: Integer
Integer
您可以在那放什么,这就是从堆栈中弹出的值的总和?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句