Персистентные структуры данных в Scala

Являются персистентными все неизменные структуры данных в Scala? В противном случае, кто из них является и который нет? Каковы поведенческие характеристики тех, которые являются персистентными? Кроме того, как они выдерживают сравнение с персистентными структурами данных в Clojure?

25
задан Abhinav Sarkar 24 June 2010 в 03:57
поделиться

4 ответа

Все неизменяемые структуры данных Scala являются постоянными в том смысле, что старое значение поддерживается операцией `обновления '. Фактически, я не знаю разницы между неизменяемым и постоянным; для меня эти два термина являются псевдонимами.

Две из неизменяемых структур данных Scala 2.8 - это векторы и хеш-попытки, представленные в виде 32-арных деревьев. Первоначально они были разработаны Филом Багвеллом, который работал с моей командой в EPFL, затем адаптирован для Clojure, а теперь, наконец, адаптирован для Scala 2.8. Реализация Scala имеет общий корень с реализацией Clojure, но определенно не является ее портом.

55
ответ дан 28 November 2019 в 18:02
поделиться

Список, вектор, HashMap и HashSet постоянны в Scala 2.8. Существуют и другие постоянные структуры данных, но они охватывают все основные применения, я не уверен, что есть смысл перечислять их все.

6
ответ дан 28 November 2019 в 18:02
поделиться

Пожалуйста, взгляните на эти замечательные статьи Даниэля Спивака:
http://www.codecommit.com/blog/scala/implementing-persistent-vectors-in-scala
http://www.codecommit.com/blog/scala/more-persistent-vectors-performance-analysis

Он также ссылается на реализацию Clojure.

9
ответ дан 28 November 2019 в 18:02
поделиться

Что касается последней части вашего вопроса, я помню, что Рич Хики упоминал в презентации, что структуры данных Clojure были перенесены в Scala. Кроме того, Майкл Фогус упоминает планы по внедрению в Scala 2.8 некоторых структур данных Clojure в этом интервью.

Извините, что так мало подробностей... Я не уверен, каков статус вышеупомянутых планов Scala 2.8, но я вспомнил, что Рич и Майкл упоминали об этом, и подумал, что это может быть интересной вещью для вас, чтобы погуглить, если вам интересно.

4
ответ дан 28 November 2019 в 18:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: