Что представляет собой ценность в чисто функциональном программировании?
Я задаю себе эти вопросы, увидев предложение:
Task
(илиIO
) имеет конструктор, который фиксирует побочные эффекты как значения.
- Является ли функция значением?
- Если да, то что это означает, приравнивая две функции:
assert(f == g)
. Для двух функций, которые эквивалентны, но определяются отдельно =>f != g
, почему они не работают как1 == 1
?
- Если да, то что это означает, приравнивая две функции:
- Является ли объект с методами значением? (например,
IO { println("") }
) - Является ли объект с методами setter и изменяемым состоянием значением?
- Является ли объект с изменчивым состоянием, который работает как конечный автомат?
Как мы проверяем, является ли что-то ценным? Является ли неизменность достаточным условием?
UPDATE: Я использую Scala.