Quellcode durchsuchen

broken queue instance for fingertree.

Lucas Stadler vor 11 Jahren
Ursprung
Commit
0b2d15c76d
1 geänderte Dateien mit 8 neuen und 0 gelöschten Zeilen
  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