
I'd like to know how to index a particular element at run-time as I don't know on which element of which sublist I am at the moment in pullHelper function which starts with values !! ind p xs !!
It's maybe worth pointing out that few Haskell programs use indexing. It's far more common to see programs use pattern matching, array comprehensions, or a higher order function than to see indexing of lists. For example, I'd write: map show xs instead of [ show (xs !! i) | i <- [0..length xs -1] (which is about the closest translation of a C for loop indexing an array). or, if you need the index of a value in an array, you might write something like: [ i*x | (i,x) <- zip [0..] xs ] Not only is is usually shorter to avoid indexing but it is also less error prone. In C, Pascal, etc. it is really easy to walk off the end of an array and the error isn't caught until (at best) runtime. If you use pattern matching, etc. the error is harder to make and tends to be caught at compile time. Of course, sometimes you do need random access. For that, you should use arrays. -- Alastair Reid www.haskell-consulting.com