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