From: Magnus Lie Hetland <magnus@he...>  20020426 22:30:43

Kendall Clark <kclark@...>: > > On Fri, Apr 26, 2002 at 02:48:17PM 0700, Terrel Shumway wrote: > > On Fri, 20020426 at 09:39, Kendall Clark wrote: > > > DELETE is idempotent (once it is gone, it is gone), but charging a > > credit card is not. > > Yeah, it really is. I guess this would depend on how you translate an "operation" to a "function" (which is what "idempotent" describes). IMO the most useful definition here would be as a function from one state to another, so that applying the same operation repeatedly will have the same effect as applying it once. (Not a perfect analogy to the function stuff, since this would really entail that no change was possible I guess ;) Anyway, charging a credit card repeatedly is not the same as deleting a file repeatedly. After the first deletion, no more change will occur by reapplying the operation. The same can hardly be said about the credit card stuff. > Each GET has the same effect: to charge the same amount > on a credit card. Sure... And each call to the function sin() has the same effect  calculating the sine of a number. But sin(3) and sin(sin(3)) are not equal, and thus sin() is not idempotent. > That over the course of N GETs the *total* charge is N * > amount is no different than that, over the course of N GETs, a hit counter > is incremented N times. Sure. > > Thank you, Kendall, for helping me to clarify this in my mind. > > Idempotence is not the issue, safety is. > > They are both issues, but, yes, GET and DELETE are both supposed to be > idempotent, but GET is supposed to be safe, too. I'm not sure the term idempotent is very useful here, since it seems to be used in two different ways (and since it's really only valid for functions, or operators). > And yr welcome. > > Kendall  Magnus Lie Hetland The Anygui Project http://hetland.org http://anygui.org 