Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004952OCamlOCaml generalpublic2010-01-02 19:492010-01-07 15:47
ReporterBasile Starynkevitch 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0004952: wish: after functions in ordered types like Map or Set
DescriptionIl would be quite useful to be able to get, inside a Map, the entry (if any) after a given key.

So I would dream of an additional function inside Map.S

(** [after k m] retrieve the next key, that is the lowest [nk] such that the map [m] contains a binding for [nk] and with [nk] compared greater than [k]. If no such key exist, raises [Not_found] **)
val after: key -> 'a t -> key

Likewise, it would be useful to be able to get, inside a Set, the element (if any) next to a given one.

So I would dream of an additional function inside Set.S

(** [next x s] returns the element [y] after the given [x] in set [s], or raises [Not_found] if no such element exist (i.e. if [s] is empty or if [x] is the maximal element. *)
val next: elt -> t -> elt

Additional InformationThe wished can be defined using Set.S.split (but that might not be efficient) and Set.S.min.

One could also wish the dual Set.S.previous.

Both functions have the following uses:

* the notion of good orders in math.

* in general, implement iterating co-routines (or iteration in CPS style) in Set-s or Map-s.

* in particular, they would be quite useful in some graphical interface applications. For example, suppose one code an editor using LabGtk & GText.buffer & GText.view. If one wants to have some sensitive words or text fragments, it would be useful to find e.g. the iter after a given line, etc..

Happy New Year 2010!


Basile Starynkevitch
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2010-01-02 19:49 Basile Starynkevitch New Issue
2010-01-07 15:47 doligez Status new => acknowledged

Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker