0
我做了一個簡單的程序來處理我已經實現的隊列數據結構。這裏是我的代碼Haskell:我的程序沒有轉換
transf :: Queue -> [Char]
transf emptyQueue = []
transf queue = [front queue] ++ transf (dequeue queue)
其中隊列是
newtype Queue = Q [Char] deriving (Show)
emptyQueue :: Queue
emptyQueue = Q []
queueIsEmpty :: Queue -> Bool
queueIsEmpty (Q []) = True
queueIsEmpty (Q _) = False
enqueue :: Char -> Queue -> Queue
enqueue x (Q q) = Q (q ++ [x])
dequeue :: Queue -> Queue
dequeue (Q (_:xs)) = Q xs
dequeue (Q []) = error "dequeue: empty queue"
front :: Queue -> Char
front (Q (x:_)) = x
front (Q []) = error "front: empty queue"
我的程序不轉換成隊列字符串。哪裏有問題? 在此先感謝。
另外檢查出這個有趣和優雅的方式,通過使用兩個列表而不是一個來提高運行時性能:http://fateswanderer.wordpress.com/2012/07/22/functional-data-structures-notes/ – firefrorefiddle 2013-03-11 10:53:56
謝謝,它幫助我提高了對數據結構的理解) – 2013-03-11 17:17:54