호출 전후를 하나의 명세로 묶는다
사례마다 호출 전 상태, 적용 조건, 반환값과 호출 뒤 상태가 하나의 명세로 이어진다. 적용 조건을 만족하지 않으면 연산은 시작되지 않는다.
→
→
연산 열을 따라 상태와 반환값을 계산한다
빈 스택에서 네 연산을 차례로 호출한다. 각 행의 호출 뒤 상태가 다음 행의 호출 전 상태가 된다.
| 호출 전 상태 | 연산 | 반환값 | 호출 뒤 상태 |
|---|
같은 반환값도 호출 뒤 상태가 다르면 다른 연산이다
peek()과 pop()은 같은 맨 위 값을 돌려주지만 한쪽만 상태를 바꾼다.
[4, "dog"] → 반환 "dog"
[4, "dog"]
상태를 읽고 그대로 둔다.
[4, "dog"] → 반환 "dog"
[4]
맨 위 값을 읽고 상태에서 삭제한다.
반환값과 상태 변화를 함께 보아야 연산의 의미를 구분할 수 있다.