[Haskell-cafe] lazy skip list?

Felipe Lessa felipe.lessa at gmail.com
Thu Aug 19 23:29:04 EDT 2010


Oh, an example:

*Main> fromList [1..8] :: SkipList Z Int
Cons (Branch 1 1 None None) (Cons (Branch 3 2 (Branch 1 3 None None)
(Branch 1 4 None None)) (Cons (Branch 4 5 (Branch 3 6 (Branch 1 7 None
None) (Branch 1 8 None None)) None) Empty))
*Main> fromList [1..8] :: SkipList (S Z) Int
Cons (Branch 3 1 (Branch 1 2 None None) (Branch 1 3 None None)) (Cons
(Branch 5 4 (Branch 3 5 (Branch 1 6 None None) (Branch 1 7 None None))
(Branch 1 8 None None)) Empty)
*Main> fromList [1..8] :: SkipList (S (S Z)) Int
Cons (Branch 7 1 (Branch 3 2 (Branch 1 3 None None) (Branch 1 4 None
None)) (Branch 3 5 (Branch 1 6 None None) (Branch 1 7 None None)))
(Cons (Branch 1 8 None None) Empty)

*Main> let x = fromList [1..8] :: SkipList Z Int
*Main> toList x
[1,2,3,4,5,6,7,8]
*Main> x `index` 3
Just 4
*Main> x `index` 8
Nothing

Cheers! =)

-- 
Felipe.


More information about the Haskell-Cafe mailing list