이 방법 (SOM 벤치 마크에서 가져옴)은 스몰 토크 지역 반품에 의존합니다. 그들없이 동일한 결과를 산출 할 수있는 방법이 있습니까?스몰 토크 : 비 지역 수익을 방지하는 것이 가장 좋습니까? 알고리즘 다시 쓰기
placeQueenNonLocalReturn: c
1 to: 8 do: [ :r |
(self row: r column: c)
ifTrue: [
queenRows at: r put: c.
self row: r column: c put: false.
(c = 8) ifTrue: [ ^true ].
(self placeQueen: c + 1) ifTrue: [ ^true ].
self row: r column: c put: true ] ].
^false
!
참고 (다른 질문이지만 관련이 있습니다.) 발신자와 수신자에 대해 알지 못하는 사이에이 코드를 변경할 수 있습니까? 나는 그것이 목적에 대한 더 나은 이해를 주어야한다고 생각하지만, 나의 질문과 관련하여 방법 자체가 포함되어서는 안된다.
"방법이 자체 포함되어 있지 않아야합니까?" 중요한 부분은 인터페이스 (코드에서 분명히 드러나 듯)가 받아 들여지는 인터페이스와 '틀린'대 '진실'의 의미를 기술하는 것입니다. 이는 특히 명확하지 않습니다. –