Что такое DList?

Я пытался гуглить для этого, но все, что я получил, было историями о младших знаменитостях. Учитывая отсутствие документации, что такое DList?

25
задан Don Stewart 11 June 2011 в 16:47
поделиться

3 ответа

Это список различий, аналогичный «Список различий как функции»

scala> val (l1, l2, l3) = (List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
l1: List[Int] = List(1, 2, 3)
l2: List[Int] = List(4, 5, 6)
l3: List[Int] = List(7, 8, 9)

Эффективное добавление:

scala> l1 ::: l2 ::: l3
res8: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

Неэффективное добавление. Это создает промежуточный список (l1 ++ l2), затем ((l1 ++ l2) ++ l3)

scala> l1 ++ l2 ++ l3  // inefficient
res9: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

DList сохраняет дополнения, и требуется только создать один полный список, эффективно вызывая:

scala> List(l1, l2, l3) reduceRight ( _ ::: _) 
res10: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)
22
ответ дан 28 November 2019 в 21:18
поделиться

Со страницы проекта в scalaz :

DList, тип данных для представления элементов одного типа с операциями добавления / добавления с постоянным временем.

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

Это тип данных в неканоническом пакете scalaz , полезный для типизированных списков с доступом с постоянным временем на обоих концах. (Уловка заключается в том, чтобы ввести в Google "scala" И "dlist".)

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

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