equal
deleted
inserted
replaced
165 (Cons fromArray:#(1 2 3 4)) nth:4 |
165 (Cons fromArray:#(1 2 3 4)) nth:4 |
166 (Cons fromArray:#(1 2 3 4)) nth:5 |
166 (Cons fromArray:#(1 2 3 4)) nth:5 |
167 " |
167 " |
168 ! |
168 ! |
169 |
169 |
|
170 reversed |
|
171 "for lispers: |
|
172 return a new list with the cars in reverse order" |
|
173 |
|
174 "/ for now, tail recursion is not yet optimized by the st/x jitter... |
|
175 "/ |
|
176 "/ |rev| |
|
177 "/ |
|
178 "/ rev := [:lst :acc | |
|
179 "/ lst isNil ifTrue:[ |
|
180 "/ acc |
|
181 "/ ] ifFalse:[ |
|
182 "/ rev value:(lst tail) |
|
183 "/ value:(Cons car:(lst head) cdr:acc) |
|
184 "/ ] |
|
185 "/ ]. |
|
186 "/ ^ rev value:self value:nil |
|
187 |
|
188 | lst acc| |
|
189 |
|
190 lst := self. |
|
191 acc := nil. |
|
192 |
|
193 [ |
|
194 |nLst nAcc| |
|
195 |
|
196 lst isNil ifTrue:[ ^ acc]. |
|
197 |
|
198 nLst := lst tail. |
|
199 nAcc := Cons car:(lst head) cdr:acc. |
|
200 lst := nLst. |
|
201 acc := nAcc. |
|
202 ] loop |
|
203 |
|
204 " |
|
205 (Cons fromArray:#(1)) reversed |
|
206 (Cons fromArray:#(1 2)) reversed |
|
207 (Cons fromArray:#(1 2 3 4)) reversed |
|
208 (Cons fromArray:(1 to:10000)) reversed |
|
209 " |
|
210 ! |
|
211 |
170 tail |
212 tail |
171 "return the tail, second or cdr - whatever you wonna call it" |
213 "return the tail, second or cdr - whatever you wonna call it" |
172 |
214 |
173 ^ self cdr |
215 ^ self cdr |
174 ! ! |
216 ! ! |
307 ! ! |
349 ! ! |
308 |
350 |
309 !Cons class methodsFor:'documentation'! |
351 !Cons class methodsFor:'documentation'! |
310 |
352 |
311 version |
353 version |
312 ^ '$Header: /cvs/stx/stx/libbasic2/Cons.st,v 1.4 2003-06-05 18:39:20 cg Exp $' |
354 ^ '$Header: /cvs/stx/stx/libbasic2/Cons.st,v 1.5 2003-06-10 13:23:44 cg Exp $' |
313 ! ! |
355 ! ! |