Я должен признать, что я не знаю много о функциональном программировании. Я читал об этом здесь и там, и поэтому узнал, что в функциональном программировании функция возвращает один и тот же вывод для одного и того же ввода, независимо от того, сколько раз вызывается функция. Это в точности как математическая функция, которая оценивает один и тот же выход для того же значения входных параметров, которое входит в выражение функции.
Например, рассмотрим это:
f(x,y) = x*x + y; // It is a mathematical function
Независимо от того, сколько раз вы используете f(10,4)
, его значение всегда будет 104
. Таким образом, где бы вы ни писали f(10,4)
, вы можете заменить его 104
без изменения значения всего выражения. Это свойство называется ссылочной прозрачностью выражения.
Как говорит Википедия ( ссылка ),
И наоборот, в функциональном коде выходное значение функции зависит только от аргументов, которые вводятся в функцию, поэтому вызов функции f дважды с одним и тем же значением для аргумента x даст одинаковый результат f (x) оба раза.
Может ли функция времени (которая возвращает текущее время) существовать в функциональном программировании?
Если да, то как оно может существовать? Не нарушает ли это принцип функционального программирования? Это особенно нарушает ссылочную прозрачность, которая является одним из свойств функционального программирования (если я правильно понимаю).
А если нет, то как узнать текущее время в функциональном программировании?