[Haskell-beginners] Finding the lowest element greater or equal than

Konstantine Rybnikov k-bx at k-bx.com
Wed Mar 18 22:07:27 UTC 2015


Hi Martin,

What you want depends on more details. If you just have a list of items,
you can access its first item which is less than some "n" by doing:

headMay (filter (< n) xs)

Would this solution satisfy you? If not -- what condition would not be met?

You mentioned something regarding that with ordered list you'd have to
traverse half of the list on average. What did you mean by that? (I mean,
if you have ordered list, then either its first element is what you need,
or none of them are)

On Wed, Mar 18, 2015 at 11:49 PM, martin <martin.drautzburg at web.de> wrote:

> Hello all,
>
> I want to find the lowest element in a collection of items which is
> greatet or equal to a given element. There can be
> more than one such element in which case I wouldn't care which one I get.
> I still want to be able to iterate over the
> elements following the found element. In a way I want the equivalent of
>
> select ...
> from table
> where table.x > n
>
>
> How would I do this efficiently?
>
> I tried using an ordered list, but I would still have to traverse half the
> list on average.
>
> I suppose I can do this with some sort of tree, but i don't want to write
> all the code myself. But I couldn't find
> anything off the shelf.
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150319/960841de/attachment.html>


More information about the Beginners mailing list