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