У меня проблема, и я действительно не знаю, как это сделать на правильном пути Scala.Scala Список фильтров по дате разница
У меня есть список объектов, содержащих дату. Я хочу сделать что-то вроде этого:
Я хочу, чтобы сделать выбор, используя приемлемое значение времени, как 2 часа, между 2 преемниками в списке. Цель состоит в том, чтобы удерживать тренд пользователя по сравнению с точкой (если он показывает 2 раза здесь, или 1 или 15!).
алгоритм я представлял себе:
- Давайте держать 2 точки А и B. Вычислим разницу во времени между 2 точками, а затем оценить, если это приемлемо или нет (> 2h, приемлемо).
- Если это неприемлемо, мы отклоняем B, а затем новый B является следующим элементом списка.
- Если приемлемо, B становится A, а новый B является следующим элементом списка.
Как это сделать, с некоторыми фильтрами или сборами? О, и если алгоритм не подходит для вас, я открыт для критики!
Редактировать: Я не прошу разрешения, но только правильные функции для поиска!
Приятное и четкое объяснение. 'b :: list' в среднем случае +' .reverse' на результат будет более эффективным –
@TheArchetypalPaul Можете ли вы объяснить, почему это более эффективно? – mattinbits
Небольшая измененная версия: 'nums.foldLeft (List [Int]()) {case (Nil, b) => List (b); case (ls @ (x :: xs), b) => if (b-x> 1) b :: ls else ls} .reverse' – Eastsun