Имеет ли Scala версию Rubys each_slice из класса Array?Scala версия Rubys 'each_slice?
8
A
ответ
12
Скала 2.8 имеет grouped
, что будет Кусок данные в блоках размером n
(который может быть использован для достижения each_slice
функциональности):
scala> val a = Array(1,2,3,4,5,6)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6)
scala> a.grouped(2).foreach(i => println(i.reduceLeft(_ + _)))
3
7
11
Там нет ничего, что будет работать из коробки в 2.7 .x, насколько я помню, но это довольно легко создать из take(n)
и drop(n)
RandomAccessSeq
от:
def foreach_slice[A](s: RandomAccessSeq[A], n: Int)(f:RandomAccessSeq[A]=>Unit) {
if (s.length <= n) f(s)
else {
f(s.take(n))
foreach_slice(s.drop(n),n)(f)
}
}
scala> val a = Array(1,2,3,4,5,6)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6)
scala> foreach_slice(a,2)(i => println(i.reduceLeft(_ + _)))
3
7
11
6
Протестировано Scala 2.8:
scala> (1 to 10).grouped(3).foreach(println(_))
IndexedSeq(1, 2, 3)
IndexedSeq(4, 5, 6)
IndexedSeq(7, 8, 9)
IndexedSeq(10)
Смежные вопросы
- 1. Abort Rubys Shoes анимация
- 2. версия Scala не обновляется
- 3. Scala версия Jgit
- 4. некогерентного библиотека версия Scala
- 5. Быстрый эквивалент each_slice
- 6. Ruby: each_slice, map, inject
- 7. Почему не работает each_slice?
- 8. scala ссылка sbt проект версия
- 9. Python эквивалент Ruby's each_slice (count)
- 10. Рубин each_slice с различными размерами
- 11. Проект Rubys on Rails Использование Aptana
- 12. Существует ли JavaScript-эквивалент последовательностей rubys "# {}"?
- 13. Задайте страну по умолчанию в rubys geocoder
- 14. Разная версия scala lib в пути сборки и scala-ide
- 15. Параллельная версия Files.walkFileTree (java или scala)
- 16. Пользовательского Scala перечисления, самый изящная версия искала
- 17. F # версия Scala-кода с использованием zipWithIndex
- 18. scala версия несоответствие в искры 2.1.0
- 19. scala-library.jar версия в sbt опубликовала артефакты
- 20. Базовая версия maven-building библиотека java/scala
- 21. Scala и постоянная версия рамки несовместима
- 22. Какая версия scala использует Play! структура 2.1?
- 23. Версия Multi Scala на одной машине linux
- 24. Есть ли scala-версия Python's Mechanize?
- 25. Есть ли итеративная версия groupBy в Scala?
- 26. SBT генераторной идея Scala Ошибка версия
- 27. Какая версия Scala поддерживает Hortonwork HDP 2.1?
- 28. Как реализовать each_slice в rails-реагировать представления?
- 29. Эквивалент Ruby's Enumerable # метод each_slice в FSharp
- 30. как итерация корыта хэш в петле each_slice
Было бы лучше создать класс-оболочку 'Array', который использовал исходный' Array' в качестве исходного кода, а теперь только его фрагмент. Неявный метод 'eachSlice' может быть добавлен в' Array', возвращая 'List [ArraySlice]'. Разве вы не хотите идти на это в ответ? :-) Я не могу дать вам больше голосов, но я буду восхищаться вами. :-) :-) –
@ Daniel: Hahaha - да, это было бы лучше (быстрее), но если оно не будет в библиотеке где-нибудь (и почему бы это сделать, поскольку мы уже «сгруппировали» в 2.8?), Я думаю Я оставлю это упражнение для читателя. –
Это было бы лучше для локальных алгоритмов. Вы всегда можете отправить его для улучшения в Scala. Лучше зарегистрировать форму участника сначала. Я бы хотел, чтобы такой вариант был доступен. –