Question

sont toutes les structures de données immuables dans Scala persistante? Sinon, qui d'entre eux sont et qui ne? Quelles sont les caractéristiques du comportement de ceux qui sont persistants? En outre, comment se comparent aux structures de données persistantes dans Clojure?

Était-ce utile?

La solution

structures de données immuables de Scala sont persistants, en ce sens que l'ancienne valeur est maintenue par une opération de mise à jour ` ». En fait, je ne sais pas d'une différence entre immuable et persistante; pour moi les deux termes sont des alias.

Deux de 2,8 structures de données immuables de Scala sont des vecteurs et des essais de hachage, représentés comme des arbres 32-aire. Ceux-ci ont été conçus à l'origine par Phil Bagwell, qui travaillait avec mon équipe à l'EPFL, puis adopté pour Clojure, et enfin adopté pour Scala 2.8. Les actions de mise en œuvre Scala une racine commune avec la mise en œuvre Clojure, mais certainement pas un port de celui-ci.

Autres conseils

S'il vous plaît jeter un oeil à ces excellents articles de Daniel Spiewak:
http://www.codecommit.com/blog/scala/implementing -persistent-vecteurs-en-scala
http://www.codecommit.com/blog/scala/more -persistent vecteurs performance-analyse

Il fait référence également à la mise en œuvre de Clojure.

Liste, vecteur, HashMap et HashSet sont persistants sur Scala 2.8. Il existe d'autres structures de données persistantes, mais celles-ci couvrant toutes les principales utilisations, je ne suis pas sûr qu'il ya un point quelconque dans l'énumération tous.

Pour la dernière partie de votre question, je me souviens Rich Hickey mentionner dans une présentation que les structures de données Clojure ont été portés à Scala. En outre, Michael Fogus mentionne des plans pour Scala 2.8 d'adopter certaines des structures de données de Clojure dans cette entrevue.

Désolé, c'est si peu de détails ... Je ne suis pas sûr de ce que l'état est sur la Scala 2.8 plans mentionnés ci-dessus, mais je me suis souvenu Rich et Michael mentionner cela et pensé qu'il pourrait être une chose intéressante pour vous Google car si vous êtes intéressé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top