Хабрахабр

[Перевод] Мои любимые примеры функционального программирования в языке Kotlin

Давайте посмотрим и обсудим некоторые простые, но выразительные функции, написанные на языке Kotlin. Одной из замечательных особенностей Kotlin является то, что он поддерживает функциональное программирование.

Мои любимые примеры функционального программирования в языке Kotlin

Работа с коллекциями

Есть множество разнообразных функций. Kotlin поддерживает удобную работу с коллекциями. Нам нужно найти лучших студентов, которые достойны стипендии. Предположим, что мы создаем некоторую систему для университета. У нас есть следующая модель Student:

class Student( val name: String, val surname: String, val passing: Boolean, val averageGrade: Double
)

Теперь мы можем вызвать следующую функцию, чтобы получить список десяти лучших студентов, которые соответствуют всем критериям:

students.filter // 1 .sortedBy { it.averageGrade } // 2 .take(10) // 3 .sortedWith(compareBy({ it.surname }, { it.name })) // 4

  • Оставляем только сдавших экзамен студентов, средний балл которых более 4.0.
  • Сортируем их по среднему баллу.
  • Оставляем первых десять студентов.
  • Сортируем их по алфавиту. Компаратор сначала сравнивает фамилии, и если они равны, то он сравнивает имена.

Мы можем это сделать, используя индексы: Что, если вместо порядка по алфавиту нам нужно сохранить изначальный порядок студентов?

students.filter { it.passing && it.averageGrade > 4.0 } .withIndex() // 1 .sortedBy { (i, s) -> s.averageGrade } // 2 .take(10) .sortedBy { (i, s) -> i } // 3 .map { (i, s) -> s } // 4

  • Привязываем текущий индекс итерации к каждому элементу.
  • Сортируем по среднему баллу и оставляем первые десять студентов.
  • Снова сортируем, но теперь по индексу.
  • Удаляем индексы и оставляем только студентов.

Этот пример наглядно показывает, как проста и интуитивно понятна работа с коллекциями в Kotlin.

Работа с коллекциями в Kotlin

Супермножество (булеан)

Для любого множества его супермножеством является множество всех его подмножеств, включая само оригинальное множество и пустое множество. Если вы изучали алгебру в университете, вы можете вспомнить, что такое супермножество. Например, если у нас есть следующий набор:

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть