:이죠/스몰 토크에서 블록 배열을 정렬 내가 이해할 수없는 블록과 <code>#sort:</code>를 사용 스몰 토크에서 질문이
ArrayedCollection » sort: aSortBlock
"Sort this array using aSortBlock for comparing elements.
The block should take two arguments and return true if the
first element should preceed the second one.
If aSortBlock is nil then <= is used for comparison."
Self mergeSortFrom: 1
to: self size
by: aSortBlock
의 결과가 될 것입니다 무엇 :
| a b |
a := 10.
b := [:c :d | (c > a and: [d > a]) ifTrue: [c >= d] ifFalse: [c <= d]].
#(17 1 15 6 10 3 7 11 12 4) sort:b
단계별로 자세히 설명해 주실 수 있습니까?
처음에 c = 17
및 d = 1
?
둘 다 a
(10)보다 크지 않으므로 블록이 c <= d
을 반환합니까?
다음에 어떤 일이 발생합니까? 배열이 실제로 정렬되는 방법은 무엇입니까?
숙제 문제입니까? – Tobias
디버거에서 단계별 실행을 시도 했습니까? 모든 변수에 대해 가장 쉽게 이해할 수 있습니다. 이러한 변수의 이름을 'a'에서 'd'로 지정하면 실용적인 예제보다는 숙제와 같이 스몰 토크 -y (예, 단어)가 아닌 것처럼 보입니다. –
집에서하는 일이 아닙니다. 이전 시험의 샘플입니다. 논리를 설명해 주시겠습니까? 그냥 시작 부분이 필요합니다 .... – user3132295