2013-01-02 5 views

Répondre

2

Voyons ce que les vecteurs intégrés implémentent. Vous pouvez afficher la source here, on github.

On dirait qu'il est: Object, IWithMeta, IMeta, IStack, ICollection, IEmptyableCollection, ISequential, IEquiv, IHash, ISeqable, ICounted, IIndexed, ILookup, IMapEntry, IAssociative, IVector, IReduce, IKVReduce, IFn, IEditableCollection et IReversible.

Cela fait beaucoup, mais puisque chacun d'entre eux définit une ou deux méthodes au plus, cela ne demande pas beaucoup de travail. De plus, vous pouvez laisser certains d'entre eux non implémentés, comme IEditableCollection qui est seulement utilisé pour les transitoires ou IReduce qui est pour les nouvelles fonctions de réducteurs.

Vous n'avez même pas à faire fonctionner votre nouvelle structure de données exactement comme un vecteur intégré. Vous pourriez lui faire mettre en œuvre toutes les choses séquentielles et ne pas s'inquiéter de la carte, par exemple, bien que, bien sûr, il serait moins pratique qu'un vecteur normal.

Questions connexes