В сообщении из другого потока говорится, что функция называется идемпотентной , если ее можно вызвать несколько раз без изменения результата.
Однако используемые термины (например, отсутствие побочных эффектов и возврат одинаковых результатов) относительно неоднозначны. Рассмотрим этот фрагмент кода:
public class test {
int x = 0;
java.util.Random r = new java.util.Random();
public int F() {
return x + 1;
}
public void F2() {
x = r.nextInt();
}
}
Можно ли сказать, что F ( )
идемпотентен, потому что последовательные вызовы F ()
возвращают одно и то же значение?
Или это не идемпотент, поскольку последовательные вызовы F ()
] не возвращает то же значение, если F2 ()
вызывается между?
PS: « идемпотент », как определено в информатике, а не в математике.