It makes sense that idempotent can have both definitions.<p>Mathematical functions can&#x27;t have side effects so they have the &quot;normal&quot; definition of f(f(x))=f(x).<p>In computer science, with side effects, since state can change, the passage of time could be though of as similar to composition f(x) ... f(x) ~= (f o f)(x) = f(f(x)). This is the line of thinking that gets to monads where successive calls would in fact be f(f(x)) (or f(x).f())<p>Am I understanding idempotence&#x2F;side effects&#x2F;monads right?