Функция чистоты пустых лямбд в Java - PullRequest
0 голосов
/ 01 марта 2019

Чистый против нечистого

По определению, лямбда-выражение / выражение - это чистая функция , если она не изменяет состояние, и нечистая функция в противном случае.Под состоянием один подразумеваются аргументы, которые он получает, или данные в его окружении / окружающем окружении.

Создание результата

Лямбда-выражение / оператор может давать результат или нет.Это не должно мешать его аспекту чистоты функций.

Таким образом, можно рассуждать о следующих категориях (нечистые мутируют аргумент)

  • Чистая функция лямбда, выдающая результат (например, x -> x + 1)
  • нечистая функция лямбда, дающая результаты (например, (StringBuilder sb) -> {sb.append("impure and proud of it"); return -3;})
  • чистая функция void лямбда (например, x -> {})
  • нечистая функция void лямбда (например, (StringBuilder sb) -> sb.append("abc"))

Как определить чистоту функции следующих лямбд:

  • x -> System.out.println(x)
  • x -> Util.writeToDb(x) (рассмотрим writeToDb(int x) методкоторый принимает int или String в качестве аргументов, подключается к БД с помощью jdbc, вставляет аргумент в готовую таблицу и закрывает соединение.)

Конечно, в обоих случаях состояниеВселенная меняется с вызовом.Однако, формально, где кончается государственная сфера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...