I hesitate to modify the inheritance structure of Clojure's
interfaces.
ClojureCLR does follow ClojureJVM in providing support for these
interfaces in the abstract base classes underlying things such as
PersistentTreeMap.
In ClojureCLR 1.3-alpha:
public class PersistentTreeMap : APersistentMap, IObj,
Reversible, Sorted, IEnumerable<IMapEntry>,
IDictionary
public abstract class APersistentMap: AFn, IPersistentMap,
IDictionary, IEnumerable<IMapEntry>,
MapEquivalence,
IDictionary<Object,Object>
The only difference in 1.3-alpha versus 1.2 is that 1.3 adds the
generics IEnumerable<IMapEntry> and IDictionary<Object,Object> for
interop with System.Linq and related libraries. 1.2 does have the
IEnumerable defined. The entries iterated are IMapEntry.
So you should be able cast directly to IEnumerable in either version,
without casting to PersistentTreeMap.
-David
On Mar 7, 5:54 pm, Timothy Pratley <[email protected]> wrote:
> Feature request:
> It would be handy for ISeq to inherit IEnumerable.
> My use case is wanting to expose an IEnumerable "Values" from a
> Clojure IPersistentMap (vals ) call
> Currently I can do it easily enough by casting to PersistentTreeMap
> which has a .Values implementation, but I suspect there is probably a
> smarter solution... :)
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en