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