Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001771OCamlOCaml generalpublic2003-07-24 19:412008-02-19 15:08
Reporteradministrator 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0001771: Amélioration dans le module Map
DescriptionFull_Name: Boris Yakobowski
Version: 3.07+beta 1
OS: Linux
Submission from: lcultra.macs.hw.ac.uk (137.195.27.64)


(C'est un wish, pas un bug)

Serait-il envisageable de rajouter la fonction suivante, ou une autre
approchante, dans le foncteur Map.Make ?
    val alter_add : ('a option -> 'a) -> key -> 'a t -> 'a t
    (** [alter_add f x m] returns a map containing the same bindings as
       [m], except for the binding of [x], which is [f None)] if [x] was
       not previously bound, and [f (Some y)] if [x] was previously
       bound to [y]. *),
qui est plus ou moins équivalent à un find suivi d'un add conditionnel, mais en
une seule traversée. C'est particulièrement utile quand on utilise des
dictionnaires de dictionnaires, et qu'on veut ajouter une valeur au dictionnaire
référencé par la 1ère clé.

Une alternative (ou plutôt une fonction complémentaire) serait
    val alter: ('a -> 'a) -> key -> 'a t -> 'a t
    (** [alter f x m] returns a map containing the same bindings as
       [m], except for the binding of [x] which becames [f x] if x
       was present in [m] *)

En plus mineur, serait-il possible d'avoir une interface non fonctorielle pour
Map et Set, qui utilise Pervasives.compare par défaut (comme Hashtbl pour hash)
? Évidemment c'est beaucoup de duplication de code, mais je ne me rappelle pas
avoir utilisé une fonction de comparaison autre que Pervasives.compare...

--
Boris

TagsNo tags attached.
Attached Files

- Relationships
related to 0000340closedfrisch Implementer dans Map les memes operations que dans Set 

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue
2008-02-19 15:08 doligez Relationship added related to 0000340


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker