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
StatusacknowledgedResolutionopen 
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 Set.S.next 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!

Regards.

--
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