[Haskell-cafe] lazy skip list?

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Thu Aug 19 23:49:35 EDT 2010


On 20 August 2010 13:29, Felipe Lessa <felipe.lessa at gmail.com> wrote:
> 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
>

How about fromList [1..] like Evan's original email had (which I think
is going to be a problem here as well)?

-- 
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
IvanMiljenovic.wordpress.com


More information about the Haskell-Cafe mailing list