16

There's a computer science term for this that escapes my head, one of those words that ends with "-icity".

It means something like a given action will always produce the same result, IE there won't be any hysteresis, or the action will not alter the functioning of the system...

Ring a bell, anyone? Thanks.

Apologies for the tagging, I'm only tagging it Java b/c I learned about this in a Java class back in school and I figure that crowd tends to have more CS background...

Michael Myers
  • 188,989
  • 46
  • 291
  • 292
ambertch
  • 7,581
  • 4
  • 28
  • 40

14 Answers14

43

This could mean two different things:

deterministic - meaning that given the same initial state, the same operation (with exactly the same data) will always produce the same resulting state (and optional output.) - http://en.wikipedia.org/wiki/Deterministic_algorithm

i.e. same action has the same effect - assuming you start from the same place in the same system. (Nothing random about it, nothing fed in from the outside that could effect the result...)

idempotent - meaning applying a function to a value once e.g. f(x) = v produces the same result as applying the function multiple times e.g. f(f(f(x))) = v - http://en.wikipedia.org/wiki/Idempotence

i.e. one or more function applications yields the same value given the same initial value

Dafydd Rees
  • 6,941
  • 3
  • 39
  • 48
  • I though deterministic just mens it does not crash :-) given the same starting state and input. (Joking) – Martin York Jan 20 '10 at 16:14
  • Yes! I was looking for idempotent - I guess it's not exactly what I thought it meant though, thanks! – ambertch Jan 21 '10 at 00:42
  • 2
    for example, some light switches are idempotent, some are not. If you flip it up to turn it on, and flip it up again, it stays on, that's idempotent. If you press it to turn it on, then press it again, it turns off - that's not idempotent. – ja. Apr 28 '10 at 18:13
11

you mean idempotent ??

ram
  • 11,468
  • 16
  • 63
  • 89
  • That has to do with side effects, but not necessarily that it gives the same result. – troelskn Jan 20 '10 at 18:41
  • from wikipedia:Idempotence (pronounced /ˌaɪdɨmˈpoʊtəns/) describes the property of operations in mathematics and computer science that means that multiple applications of the operation do not change the result. – ram Jan 20 '10 at 18:44
11

Referential transparency is also used in some CS circles.

Daniel
  • 26,899
  • 12
  • 60
  • 88
8

Nullipotent?

Platinum Azure
  • 45,269
  • 12
  • 110
  • 134
6

deterministic ,.,-=

jspcal
  • 50,847
  • 7
  • 72
  • 76
  • Deterministic still may alter the system. `myAccount.balance += 50` would deterministically withdraw money from account ;-) – notnoop Jan 19 '10 at 21:08
  • 11
    I'd like to be able to withdrawal money while increasing my balance! – Ruddy Jan 19 '10 at 21:11
6

Are you looking for invariant?

http://en.wikipedia.org/wiki/Invariant_%28computer_science%29

In computer science, a predicate is called an invariant to a sequence of operations if the predicate always evaluates at the end of the sequence to the same value as before starting the sequence.

Jesse Stimpson
  • 972
  • 9
  • 19
4

side effect-free?

Brian Postow
  • 11,709
  • 17
  • 81
  • 125
3

In math, a function 'f' is idempotent if multiple applications do not change the result.

Michael Easter
  • 23,733
  • 7
  • 76
  • 107
2

you mean idempotence?

Mauricio
  • 5,854
  • 2
  • 28
  • 34
1

or the action will not alter the functioning of the system...

Are you looking for ‘idempotence’?

bobince
  • 528,062
  • 107
  • 651
  • 834
1

The "ends with -icity" part of your question makes me think you might be looking for monotonicity, even though it does not quite match description/definition of the word. From the Wikipedia article:

In mathematics, a monotonic function (or monotone function) is a function which preserves the given order. This concept first arose in calculus, and was later generalized to the more abstract setting of order theory.

In the following illustrations (also borrowed from the Wikipedia article) three functions are drawn:

A:      B:      C:

A and B and both monotonic (increasing and decreasing respectively), while C is not monotonic.

Community
  • 1
  • 1
Jørn Schou-Rode
  • 37,718
  • 15
  • 88
  • 122
0

You mean an atomic block of code?

Terje
  • 1,753
  • 10
  • 13
0

The A in ACID.

Atomicity - states that database modifications must follow an “all or nothing” rule. Each transaction is said to be “atomic.” If one part of the transaction fails, the entire transaction fails.

Yada
  • 30,349
  • 24
  • 103
  • 144
0

It sounds like what you're describing would be a memoryless function. Although the term memorylessness is usually used for stochastic distributions, I don't quite remember if it has a programming equivalent...

Wim
  • 11,091
  • 41
  • 58