여러 번 적용 할 수 있고 초기 응용 프로그램 이후로 상태를 변경하지 않는 작업에 대한 단어는 무엇입니까?


38

나는 단어를 기억하려고 노력하고 있는데, 그것이 계산 또는 데이터베이스 이론과 관련이 있다고 생각 합니다. 가장 가까운 동의어는 atomic정확히 그렇지 않습니다. 기본적으로 그것은 여러 번 연속으로 실행될 때에도 동일한 결과를 생성하는 일종의 계산입니다. 즉, 부작용을 일으키지 않습니다.

chmod 명령 (또는 다른 권한 관련 작업)에 대한 Stack Overflow 답변 에서이 단어를 구체적으로 실행했습니다.

잘만되면 그것은 충분하다. Wikipedia를 찌르는 것은별로 도움이되지 않습니다.


5
모든 호출 작업에 동일한 입력을 전달할 것인지 또는 이전 호출 결과에서 다음 작업을 실행할 것인지를 지정하는 것이 좋습니다.
maxim1000

3
@ maxim1000 동의합니다. 다양한 답변으로 판단 할 때 아무도 OP가 무엇을 의미하는지 확신 할 수 없습니다.
ford

여기서 문제는 주제의 질문이 신체의 질문과 완전히 동일하지 않다는 것입니다. 주제에 대한 답변을했지만 지금 다시 보면 포스터가 원하는 것이 아니라고 확신합니다. 질문 편집, 답변 삭제
pdr

GET 요청과 같은 것에 대해 묻고 있습니까 (무엇이든 상관없이 동일한 결과가 반환 될 때마다) 또는 할당 연산자와 같은 것에 대해 묻고 있습니까 (효과는 있지만 동일한 할당을 반복해도 아무런 변화가 없습니다) )?
이즈 카타

답변:


90

"등 전성 "을 생각하고있을 것 입니다.

Idempotence는 수학 및 컴퓨터 과학에서 특정 작업의 속성으로 초기 응용 프로그램 이외의 결과를 변경하지 않고 여러 번 적용 할 수 있습니다.


16
기본적으로 dem 등원 fIFF f(f(x)) == f(x)FORALL x입니다.
Jörg W Mittag

1
설명의 흥미로운 제한-링크 된 페이지의 대화 섹션에서 엘리베이터 버튼에 대해 설명합니다. 수학 또는 Comp Sci와 관련이없는 "등 전성"으로 설명 할 수있는 1000 가지 동작이 있어야합니다.
mattnz

질문에 대한 나의 이해에서, 그것은 첫 번째 반복의 결과에 알고리즘을 적용하는 것이 아니라 동일한 소스 데이터에 다시 적용하는 것에 대해 말하지 않기 때문에 OP가 요구하는 것이 아닙니다. x = y, F (x) = F (y)와 같은 것
Joubarc

2
@Joubarc 그렇습니다. pot 등원 (Idempotent)은 나머지 수학 계산에서 약간 느슨한 의미를 지니므로 정확합니다. en.wikipedia.org/wiki/Idempotent#Computer_science_meaning
jk.

나는 그 페이지를 읽었고 그 당시에는 확신하지 못했다. 그러나 솔직히 말해서 그것은 dem 등증의 개념이 아닙니다. 오히려 문제가 그것에 관한 것인지 아닌지였습니다. 그러나 이제는 다시 읽었으므로 내가 틀렸다는 것을 인정합니다 (특히 chmod 예제가 좋은 경우)
Joubarc

12

일반적으로 Idempotence 는 컴퓨터와 수학에 모두 적용됩니다. 그것은 종종 혼동되는 재진입 과는 다릅니다 . Idempotence는 정확하게 당신이 묘사 한 것입니다.

Haskell과 같은 순전히 기능적인 언어는 가능한 한 dem 등원 (Idempotent)에 가깝다는 원칙을 바탕으로 구축되었습니다. 데이터베이스 이론에서 약어 ACID 의 처음 세 글자는 데이터베이스에 적용되는 등전위입니다.


10

순수한 기능을 찾고있을 것 입니다.

링크에 정의 된대로 두 가지 조건은 함수를 순수하게 만듭니다.

  1. 함수는 항상 동일한 인수 값이 주어지면 동일한 결과 값을 평가합니다.
  2. 결과의 평가는 변경 가능한 객체의 돌연변이 또는 I / O 장치로의 출력과 같이 의미 적으로 관찰 가능한 부작용 또는 출력을 유발하지 않습니다.

4
순도는 단순한 dem 등분을 넘어선 다 : 순수한 기능은 전혀 부작용을 가질 수 없으며, dem 등원은 후속 실행이 다른 일을하게하지 않는 한 부작용을 가질 수있다. 예를 들어, 지역 가변 변수를 사용하는 함수는 순수하지는 않지만 dem 등성 일 수 있습니다. 당신은 사용하는 기능을 쓸 수 있습니다 글로벌 변수와 여전히 나무 등입니다은 오래 당신이 만드는대로 있는지 그것이 재진입하기 위해 그 전역을 보호합니다.
tdammers

3
@tdammers 순도와 dem 등식은 완전히 직교합니다. 순수한 함수는 dem 등식 일 필요가 없으며 그 반대도 마찬가지입니다. 예를 들어 f(x) := x + 1순수하지만 반드시 dem 등하지는 않습니다.
Konrad Rudolph


0

또 다른 가능성은 결정 론적 이다.

컴퓨터 과학에서 결정 론적 알고리즘은 특정 입력이 주어지면 항상 동일한 출력을 생성하고 기본 시스템이 항상 동일한 상태 시퀀스를 통과하는 알고리즘입니다.


1
이것은 이전 답변에서 삭제되었습니다. "이것은 틀렸다. 예를 들어, 두 값을 바꾸는 알고리즘은 완벽하게 결정적이지만 두 번 실행하면 한 번 실행하는 것과 같은 결과를 얻지 못한다."
gnat

2
원래 질문이 잘 표현되지 않았기 때문에 이것이 원래 질문에 대답하는지 여부는 확실하지 않지만 결정론이라는 단어는 누군가가 끝났을 때 검색 한 단어 일 수 있기 때문에이 답장을 투표했습니다. 이리.
Richard Whitehead

다음 실행 전에 입력 값을 변경하면 루틴에 동일한 정확한 인수 값을 제공한다고 주장 할 수있는 방법은 무엇입니까?
Hein Haraldson Berg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.