Просмотр исходного кода

broken queue instance for fingertree.

Lucas Stadler лет назад: 11
Родитель
Сommit
0b2d15c76d
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      hs/DataStructures.hs

+ 8 - 0
hs/DataStructures.hs

@ -248,6 +248,14 @@ instance Seq FingerTree where
248 248
        Deep p (append (Node3 a b c) t) (Two d x)
249 249
    append x (Deep p t s) = Deep p t (append x s)
250 250
251
instance Queue FingerTree where
252
    enqueue x ft = append x ft
253
254
    dequeue Empty = Nothing
255
    dequeue (Single x) = Just (x, Empty)
256
    dequeue ft =
257
        case last ft of
258
            Just x -> Just (x, rest ft) -- broken, we'd need a different version of rest
251 259
-- examples
252 260
sl = fromList [1..10] :: List Integer
253 261
bq = fromList [1..10] :: BankersQueue Integer