这是我第一次使用Haskell,我已经阅读了很多关于它的教程.但是在实践中,出现了许多问题.我试图建立一个堆栈数据结构并在Do块中使用它.但是当我这样做的时候.它说不能匹配类型'堆'与'IO',我不知道这个问题.以下是我的代码:
import Data.Array.IO
main::IO()
main = do
arr <- newArray((0,0),(8,13)) 0 ::IO (IOArray(Int,Int) Int)
list <- getElems arr
print list
push 0 mystack --here is the problem
return()
data Stack a = Stack [a] deriving Show
empty :: Stack a
empty = Stack []
push :: a -> Stack a -> Stack a
push x (Stack xs)= Stack (x:xs)
pop :: Stack a -> (Maybe a, Stack a)
pop (Stack []) = (Nothing, Stack [])
pop (Stack (x:xs)) = (Just …Run Code Online (Sandbox Code Playgroud)