Selaa lähdekoodia

broken queue instance for fingertree.

Lucas Stadler 11 vuotta sitten
vanhempi
commit
0b2d15c76d
1 muutettua tiedostoa jossa 8 lisäystä ja 0 poistoa
  1. 8 0
      hs/DataStructures.hs

+ 8 - 0
hs/DataStructures.hs

248
        Deep p (append (Node3 a b c) t) (Two d x)
248
        Deep p (append (Node3 a b c) t) (Two d x)
249
    append x (Deep p t s) = Deep p t (append x s)
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
-- examples
259
-- examples
252
sl = fromList [1..10] :: List Integer
260
sl = fromList [1..10] :: List Integer
253
bq = fromList [1..10] :: BankersQueue Integer
261
bq = fromList [1..10] :: BankersQueue Integer