equal
deleted
inserted
replaced
21 |
21 |
22 dequeue :: forall a. Queue a -> (Maybe a, Queue a); |
22 dequeue :: forall a. Queue a -> (Maybe a, Queue a); |
23 dequeue (AQueue [] []) = (Nothing, AQueue [] []); |
23 dequeue (AQueue [] []) = (Nothing, AQueue [] []); |
24 dequeue (AQueue xs (y : ys)) = (Just y, AQueue xs ys); |
24 dequeue (AQueue xs (y : ys)) = (Just y, AQueue xs ys); |
25 dequeue (AQueue (v : va) []) = |
25 dequeue (AQueue (v : va) []) = |
26 let { |
26 (let { |
27 (y : ys) = rev (v : va); |
27 (y : ys) = rev (v : va); |
28 } in (Just y, AQueue [] ys); |
28 } in (Just y, AQueue [] ys) ); |
29 |
29 |
30 enqueue :: forall a. a -> Queue a -> Queue a; |
30 enqueue :: forall a. a -> Queue a -> Queue a; |
31 enqueue x (AQueue xs ys) = AQueue (x : xs) ys; |
31 enqueue x (AQueue xs ys) = AQueue (x : xs) ys; |
32 |
32 |
33 } |
33 } |