# $ %&
' (
)
; <
= > ?
D < F G<
* +, - - . - /0 1 2 , 3 . 1 4 , 5- 2 ,
@?
L ?
@? A > ? B
O M@GC
H U G< L < @ L <
C D E ? @? F GC E ? H < @
L <
6 5. 7 , 7 8 0 5,
C @
I JC @ @ ? @
K> F L C H ? F GC M@
> G MJ MP C L < E Q R < @G ? E M< E H ? F G ? B
D E< G< I < J<
L ? @GC
* 9 ++. : 4 59 1
? @G> L C E ? H < @
L C
C
N M? E C E = > MC
Collection
MH D J? H ? F GC S T <
L ?
B
L <
C JA > F @
N M? E C E = > MC Q
V W XY Z [ \ Y ]
^ H C
<
_ ` ab _ c d `
D < L ?
@? E
O M@GC
I < H <
C I ? @ @ < B G ? @G ? B MF @ ? E S T < B E ? H < S T <
R < E
O ? P ? @B
i H C J JG C Jj B
? H
R E < A E C H C S T <
KC P k @?
C
L M@GMF S T <
O M@G<
@MH D J? @H ? F G?
I < H <
? F GT <
> H C
I < H <
I < J? I S T <
A E> D <
? F GE ?
L ?
< ef ? I G< @ C F g F MH < @ I < H
? F > H ? E C S T <
h E M? F GC L C
> H
> H
?
> H
D < E
< ef ? I G<
?
I C D C P
I < F G? F G< E
I < H
D C E C
L < @ @? > @ H ? H e E < @ Q
h ef ? I G< @
_ ` ab _ c d `
D E < G< I < J<
?
F < > GE C @
_ ` l mb l m` n Q ; ? @ @ ?
L ?
A > C E L C E
I C D C I ML C L ?
< > GE< @
L ?
JMF A > C A ? F @
I C @< B
> H
< ef ? I G< @B
C I ? L ? E
= > ?
F T <
I < F G? F G< E
<
U
L ? KMF MF L < k @?
C < @ O C J< E ? @
L ?
G< L < @
< @ @? > @ H ? H e E < @ Q
i H C J JG C Jj B > H C
o H
D C E C
< @
@? > @
< ef ? I G< @B
L ?
I < J? I S T <
? J? H ? F G< @ Q
I < H <
O MH < @
? t ? I > S T < Q u @ @MH
F T <
r @G<
U
= > C F L <
I < F GU H
? H
G> L <
K C JC H < @
L C
I g D MC @
L < @
@? H ? JN C F G?
@? > @
C <
E ? D E ? @? F GC S T <
? J? H ? F G< @ p I < F GU H
= > ?
C I < F G? I ?
? @GsGMI C
L ?
E ? K? E q F I MC
I < H
< ef ? I G< @
< @
< > GE< @
? H
G? H D <
v
| umPonto umArray |
umPonto := 0@0.
umArray := Array with: umPonto.
“cria o array #(0@0)”
umPonto x: 1/2.
^umArray
o Array
U
> H
? t ? H D J<
L ?
“Responde o array #((1/2)@0)”
> H C
I < J? I S T <
= > ?
G? H
C
D C EGMI > JC E ML C L ?
L ?
G? E
w x y z {
|} ~{ | y
€
 |‚ { } ƒ „ … † |‡ y ˆ
! " ! ! !
# $% & ' & ( )* ( + ,(
% -
' $$ ' . -
7 ' $,41 5 )' $ * ( + ,( & ( $ 0 ' 0 (
? 9
@ ' -
)4+ 8 5 ' 8 ( + -
4+ , ( + - 4& '
(
5 * '
* ( )G % $
1 ' 7 ' 1 40 ' 0 (
-(
' 0 ( C 5 '
1 $ ( - 1 (
0 (
D -
1 % )( 1 2 3 ( -
)4+ 8 5 ' 8 ( + - + / %
% $ 4( + ,' 0 ' -
& ' $ 4( 0 ' 0 (
0 5 7 )41 ' 0 % - 9 H *
7 % 0 ( *
7 ' $ '
0 ' -
'
E, 47 % - 0 ( F
7 % $
1 % + , ( $ C 5 ' )C 5 ( $ , 47 %
0 (
C 5 (
_ `a b b c
a q a `ra i
a
Collection
l b a
c s
f
d
'
4-,%
C 5 (
# % $
% $ 0 ( + ' *
7 $ % 8 $ ' * ' 2 / % 9
5 -' $
' $$ ' . ->
' 1 % + ,( 2 '
( A ( * 7 )% >
% -
, 47 4K 4 1 ' 2 / %
% < = ( 1 ,% - > 4+ 1 )5 4+ 0 %
_ `a b bc
( *
;
'
\ [Q U O U ] X [O
a g bhi a _ ha
c
+ / %
,( * % - D
0 4+ L * 41 '
0 (
+ % - - '
' C 5 ( )(
1 % )( 1 2 3 ( -
( )( * ( + ,% -
% 5
0 ' 0 % ->
,/ %
1 5 = '
( )4* 4+ ' *
' -
1 % )( 1 2 3 ( -
% 5 ,$ ' - 1 % )( 1 2 3 ( - 9
M S NNQ R V [S T
a
e f
-( 5 -
,( * % -
;
)4+ 8 5 ' 8 ( *
* ' -
C 5 (
: -, %
1 % )( 1 2 3 ( -> 0 % - C 5 ' 4- 7 % 0 ( $ ( * % - ( -1 % )G ( $
( A 4-,(
M NO P P Q P R S T R U Q V O P WX T Y O Z Q T V O [P Y O
^
C 5 (
+ ( 1 ( - -40 ' 0 ( - 9
' 5 ,% * ' ,41 ' * ( + ,( >
5 ,4)46 ' 0 ' -
1 % + ,4+ 5 ' $ ( * % -
0 ' - $ ' 6 3 ( - 7 ' $ '
+ % - -' -
I * ' ) ), ' )J >
* ' 4 -
% $4( + ,' 0 ' - 7 % $ % <= ( 1 ,% -> 1 % * %
% <= ( 1 ,% ->
( A , ( + - 4& ' * ( + , ( 9 B * '
0 4-7 % -42 / %
C 5 (
-/ %
b
d
c i
_ `a b bc
k c
hl k a b
a
_ l `c _ m n c b o
p c
e j
i c b b t l
j
Collection allSubclasses size
_ u c v a w bc
x
_ l y _ `
bt l
z
e
} c bha b
y c
c
hl k a b
bt l
a
Collection
e
_ `a b bc b
b
c i
d
_ `a b bc
_ l y _ i c ha b o
~ l
a i a
€ a _ r ` rh a i
a
i c
j
c
hr`r a m t l



q c i c
k c
l b
y a
_ `a b bc b o
f
c s rbhc
ha
f
_ ‚ k rv l
_ l
f
u rc i a i z
ra o
^ b
{ |
g
f
_ `a b bc b
d f
_ `a b bc b
_ l y _ i c ha b
e



c
q ƒ i ra b
_ `a b br€ r_ a m n c b
l b b „q c r b
j
a rb
hr`r a k a b
a i a
e




a
k a b
c y ha rb
k a
ra o … a
€rv
k rbhry v
a
e
i a
l k c
e
j
u rc i a i z
ra
e
c y a b a
c y ha i
e f
c s rbhc
a
_ l `c _ m n c b a
€rv
i a
b c v
e
a `v
_ `a b bc
a b
k a b
_ `a b bc b
ry hc
hc
c y hc
k r
f
f
_ l y _ i c ha b
€
c y bt l
a
b
c y bt l
f
f
€ rs a † hl k a b a b l
hi a b _ `a b bc b k a
e
a
k r
e
k r
e f
y k a
f
f
f
l bhi a
e
e
Array
a hr_ a
f
hi a b _ `a b bc b _ l
e
a b
e f
hl
e
l
f
ri
j
a
f
a i a
e
i a
e
o
j
j
u rc i a i z
€ rv
ra
e
Array String Interval Bag Set Dictionary OrderedCollection SortedCollection List
f
f
u rc i a i z
e
TwoDList LinkedList NameSpaceBindings
} a b
l
f
a g bhi a _ha b
e
a
e f
f
ry _ `
k c
e j
c y b t l o
… ah
f
€rs a  _ l
l
f
i a `
e
l i c s c
j
c y hc
f
`l
a
c
y a
e
_ `a b b c
f j
z
String
o
! " ! !
? % 8 ,- &
% / 9 0,2 ( % + :
Q
7 +8
& :- &
23 (4 &
5
R
V 6
S &
- 6
š
W R R
T % & ' - ,- U S & -
š š
X Y
W C D EEF G HID J
KL M NH O L G H P
Z 7 3 (4 &
,' - & ,$ (
; ,8 & ' : * + < , = (
# $% &8
> ? % 8 ,- & ( % , 2 , + ' ( $ 8 + :
# @A & 2- + : B
% ( % ( 9 & 0(
œ
,' : & $ ) * +
5
W Z # $% &' ( )*+
,' - & $ ' (
›
5
[ Y
6
\ Y
. / ( 01 / & $
23 (4 &
] ^ _ ` _ a _ b_
h
a _ c d c
i jklkm n o p q
t q  i 
n
r n s
€ ‚ ƒ „
‚ “
— n l t q  q
r u i  n
` _ f e g e g
t ln s s u s
n s
t n ju ˆ q wkn s ‰ t w kn o p q
Ž  ƒ ‘ ’ 
e
si n s
r n
Collections
v ku w n w x i kn
t ln s su s
y
z n t k l kj n r n
t q ~ t w u jn s … † sju
{ n w n
{ wq jq t q lq
r u k~ sj Š ~ t k n s ‹ j u sj u s ‹ t q ~ Œ u w s  u s u
u | ksj} ~ t kn
u sj‡
r u
q wˆ n ~ km n r q
i 
~ n s
{ w q jq t q lq
su ˆ i k~ ju s
kj u w n r q w u s …
” „ €• ” – ƒ „
u 
{ w n jkt n  u ~ ju jq r n s n s t ln s su s t q ~ t w u jn s‹ n
t q lu t o p q
y z u kj n
u ~ Œ kn ~ r q
{ n w n
n
t ln s su
r n
t wkn o p q
t q lu t o p q
r u i  n
{ w uju ~ r kr n
k~ sjŠ ~ t kn
n
˜Œ n m kn ™
 u ~ sn ˆ u 
new.
† | u  { lq ‰
| aDictionary |
aDictionary := Dictionary new.
! " ! !
h
t w kn o p q
r u
q r u  q s jn 
i  n
y
t q lu t o p q
t w kn w i  n
t q 
n
t q lu t o p q
u lu  u ~ jq s
i sn ~ r q
y
i  n
z u kj n
i s n ~ r q
u | { w u s sp q
n
t q  q
 u ~ s n ˆ u 
n
new: n.
su ˆ i k~ ju ‰
| aBag |
aBag := Bag with: 1 with: $c with: #(3).
† sju
j k{ q
r u
˜ u ~ sn ˆ u 
{ n w n i 
~
t wkn o p q
r u
k~ sjŠ ~ t kn
with: with: with: with:
ju 
u
™ …
su
 q sjwn r q
~ u t u s s‡ w kq ‹
jkl
{ q r u  q s
u
{ w ‡ jkt q
njy
k { lu  u ~ jn w
n
u lu  u ~ jq s
 u s n
kr u kn
 u w q si { u w kq w r u u lu  u ~ j q s ‹ q x i u y jw kŒ kn l …
“ „ €“ „
— q r n s n s t q lu t o  u s sn
u
w u s{ q ~ r u w
size
isEmpty
includes: anObject
s su ˆ i k~ ju s  u ~ sn ˆ u ~ s ‰
w u s{ q ~ r u
q
w u s{ q ~ r u
su
w u s{ q ~ r u
n ~
occurencesOf: anObject
jn  n ~ v q
q
r q
w u t u { j q w …
w u t u { jq w u sj‡ q i
su
q
w u t u { jq w
~ p q
k~ t li k
Œ n m k q …
q i
~ p q
q
n wˆ i  u ~ jq
u tj
w u s{ q ~ r u
q
~
w u t u { jq w
 uwq
r u
q t q ww } ~ t kn s
r u
anObject
~ q
† | u  { lq s ‰
| anOrderedCollection |
anOrderedCollection := OrderedCollection new: 5.
Ž  ”
anOrderedCollection size.
“responde 0”
anOrderedCollection isEmpty.
“responde true.”
anOrderedCollection includes: 1
“responde false.”
anOrderedCollection occurrencesOf: 1
“responde 0”
“„ “„
i n lx i u w
k~ sjŠ ~ t kn
t q lu t o p q …
snsu i 
r u
i  n
t q lu t o p q
{ q r u
su w
r q s  y jq r q s su ˆ i k~ ju s { n w n
jwn ~ szq w  n r n
q
~ i  n
k~ sjŠ ~ t kn
r u
q i jw n
ju w  q s n t q ~ Œ u w sp q { w uju ~ r kr n …
! " ! !
asArray
asBag
asSet
asOrderedCollection
asSortedCollection
asSortedCollection: aBlock
…
€“  ƒ ‚   “ „

kj u w n r q w
su x i } ~ t kn
r u
q i
u ~ i  u w n r q w
y
i 
 u t n ~ ks  q
u lu  u ~ jq s ‹ r ks{ q ~ Œ u k s i 
x i u ‹ { n wjk~ r q
r u
i  n
t q lu t o p q ‹ ˆ u w n
i  n
n i  …
do: aBlock
† zu t ji n
aBlock
u 
t n r n
u lu  u ~ jq
… u s{ q ~ r u
q
r q
w u t u { jq w
n
jw n ~ szq w n o p q
u s{ u t kz kt n r n
u 
w u t u { jq w …
collect: aBlock
† zu t ji n
w u jq w~ n
q
i  n
i  n
jw n ~ zq w  n o p q
~ q Œ n
sq
t q lu t o p q
wu tnr n
r n
u lu  u ~ jq
 u s n
t ln s s u
r n
r q
t q lu t o p q
w u t u { jq w‹
w u t u { jq w n
t q ~ ju ~ r q
u
q s
u tjq s jwn~ szq w n r q s …
select: aBlock
u jq w ~ n
i  n
w u s{ q ~ r u w n 
t q lu t o p q
true
n q
r n
j u sj u
 u s n
t ln s su
u s{ u t kzkt n r q
u 
r q
w u t u { jq w‹
aBlock
t i
q s
u lu  u ~ jq s
…
reject: aBlock
u jq w ~ n
q s q
i  n
t q lu t o p q
r n
u t jq s x i u zn lv n w n 
 u s n
q
t ln s su
r q
w u t u { jq w ‹ t i
ju sju u s{ u t kz kt n r q
u 
q s u lu  u ~ jq s
aBlock
sp q
…
detect: aBlock
u s{ q ~ r u
q
u s{ u t kzkt n r n
{ w k u kw q
r u ~ jwq
r q
u lu  u ~ jq
lq t q
r n
aBlock
t q lu t o p q
x i u
sn jkszn m
n
t q ~ r ko p q
…
! "
! !
inject: initialValue into: aBlock
h t i  i ln
lq t q
ju 
su ˆ i ~ r q
r n r q
i 
r q ks
y
{ q w
Œ n lq w
q
x i u
w u si lj n
n wˆ i  u ~ jq s …
u lu  u ~ jq
initialValue
r n
n tji n l r n
… u s{ q ~ r u
n Œ n lkn o p q
{ wk u kw q
y
t q lu t o p q …
q
r q
q
n wˆ i  u ~ jq
Œ n lq w
n t ji n l
Œ n lq w k~ kt kn l r q
aBlock
… † sj u
n t i  i ln r q q
n t i  i ln r q
y
Œ n lq w n t i  i ln r q …
† | u  { lq s ‰
|a|
a := #(1 2 3 4).
a collect: [ :e| e even ]. “#(false true false true) ”
a reject: [ :e | e even ]. “#(1 3) i.e., rejeita os elementos que passam o teste”
a select: [ :e | e even ]. “#(2 4) i.e., colecciona os elementos que passam o teste”
a do: [ :e | e even ].
n
r q ‰ ‰u
“#(1 2 3 4)”
— w n ~ s t w k{ j
sv q ‰ u { wk~ j
a detect: [ :e| e even ].
n
k~
utj ‰
k ~ j q ‰ ‰{ n w j k n l
n
k~
utj ‰
Bag
‰
f g a ^ _
~ r kt u
{ n w n
u s { u t k n l n r  kj u
su
Bag
q
‰{ n w j k n l
™
i 
‰u
{ n wjkn l
i 
u …
w q r i t j
‰ u
{ n wjkn l
w q r i tj
u responde 24, i.e., responde o produto dos elementos do receptor.
n t u r u w
n q s
su i s
q
u lu  u ~ jq s l
lu t jkq ~
q s
^ e ^ d e
t q 
u lu  u ~ jq s
Collection
t n w n t ju wsjkt n s  n ks ˆ u w n ks ‰
~ p q
j} 
~ u ~ v i  n
q w r u 
u lu  u ~ jq s r i { lkt n r q s …
t q ~ jn r q w n s sq t kn r q
n
t n r n i 
r q s su i s u lu  u ~ jq s r u
t n r n Œ u m
x i u
u t j q kˆ i n l n u s s u u l u  u ~ j q …
h s k~ s u w o  u s sp q
z u kj n s i s n ~ r q
k~ s u w u
~ q
anObject
u lu  u ~ jq s r u
˜ e b d c e g f e g ^ a e g a be g g g f k~ t w u  u ~ jn i 
k~ s u w u i 
…
 n r n s t ln s su s t q ~ t w u jn s r n v ku w n w x i kn
u
h
f t w
responde 10, i.e., responde a soma os elementos do receptor.
k~ j q ‰ ^ j w k~ ˆ
w u t u { jq w aCollection
~ q
add: anObject
u ~ x i n ~ jq
n
q i
addAll: aCollection
su ˆ i ~ r n
 u ~ sn ˆ u 
… h
{ w k u kw n
k~ s u w u
 u ~ sn ˆ u 
t n r n
i 
r q s
w u t u { jq w … † | u  { lq s ‰
! "
! !
| anArray aBag |
anArray := Array with: 1 with: 2.
aBag := Bag new.
aBag add: anArray.
^aBag
u u
Bag
Œ u m
r n
“responde Bag(#(1 2))”
 u ~ sn ˆ u 
add:
jkŒ u s s u  q s i s n r q
n
 u ~ sn ˆ u 
‰ n
w u s{ q sjn juwkn
q
skˆ ~ kz kt n r q
addAll
skr q
˜ ™ …
h s w u  q o  u s
sp q
z u kj n s i s n ~ r q
i sn ~ r q
n s
 u ~ sn ˆ u ~ s
su ˆ i k~ ju s‹ t i
r u Œ u w ‡
su w n ˆ q w n u Œ kr u ~ ju …
remove: anObject
remove All: aCollection
h s  u ~ sn ˆ u ~ s
{ q r u 
Set u
add: addAll: remove: removeAll:
sp q
u ~ ju ~ r kr n s { q w jq r n s n s t q lu t o  u s x i u
t w u st u w n i jq  n jkt n  u ~ ju …
s q u t jq s r u sjn t ln s su
h s sk ‹ n s k~ sjŠ ~ t kn s r u
Set
w u { w u su ~ jn 
~ p q
† | u  { lq ‰
n r  kj u 
t q ~
i ~ jq s‹ ~ q
su ~ jkr q
 n ju  ‡ jkt q
r q
ju w q …
r i { lkt n r q s …
| anArray aSet |
anArray := #( a a b c c a ).
aSet := anArray asSet.
^ aSet.
† | u  { lq ‰
w u s{ q ~ r u
Set ( a b c )
| set1 set2 |
set1 := #( a b c d ) asSet.
set2 := #( a c ) asSet.
^ set1 – set2
IdentitySet u  u lv n ~ ju n q
Set
u 
w u s{ q ~ r u
Set ( b d )
jq r q s q s n s{ u t jq s‹ u | t u { jq
x i u
i sn
==
u 
Œ u m
r u
=
{ n w n ju sjn w r i { lkt n r q s …
! "
! !
q  q
Array  n ~ j} 
Œ k q s
n s
{ q sko  u s
u ln jkŒ n  u ~ j u
u | u  { lq
n
i 
n
x i n lx i u w
q
lkŒ w u  u ~ j u
” ‚ “ ‚
{ klv n s
lksjn
zkln s
lk ˜
k ~ ™ y
v n
q
k
y jn 
 n
zkln
r u
z u kj n s
v ‡
r u
z u kj q s r q
q
~ q s
~
u lu  u ~ jq
r u
t q ~ jw ‡ wkq
z k| q ‹
{ q r u  q s

i sn w
sjn t y
~
y
i  n
t v n Œ u s
q s
n t u s sq s™
{ u lq
x i u
r n
{ q r u
t v n  n r q
h q
q i
r u i  n
k~ sjŠ ~ t kn s
i 
t n sq
t q ~ jw ‡ wkq
ju  { q …
ln r q
r n
  „ €
r q
 n
lksjn
u
i 
r u
jw ‡ s r km
y
jq r n s
n
zkln
su x i u z k
”  „ €
~ n
i  n
n s
Œ ksjn
r u
i  n
~ r kt u
t q  q
r u
{ q w
k~ sjŠ ~ t kn
r u
n
k~ ju kw q
u
n t u kj n
k~ sjŠ ~ t kn
n r kt kq ~ n w
i  n
i  n
su { q w
x i u
n s
 u s q
k~ s u w kw
˜u
r u
w u  q Œ u w™
“ “ ‹
{ n w n
lksjn
lq t n l
y
q
r n
{ w k u kw q
k { lu  u ~ jn w
… … …‹ l ~
‹ y
n
 n
™
q ~ r u
w u { w u su ~ jn r n
u
lksjn ‹
 “
q w r u ~ n r n …
˜l
‹ l ‹
k~ su w o  u s
q i
w u  q o  u s
n
x i u
˜u
{ q r u  q s
su w w u  q Œ kr q ‹ i 
˜ ƒ „ € ”   „ € €™ …
 €
zkln ‹
lksjn
“ “ ‹
w u  q Œ u
y
u
… … …‹ z ~
n jw ‡ s
q i jwq
su
q w r u ~ n r n
w u  q o  u s
u sj‡
k~ ju kw q …
t q  q
i  n
OrderedCollection
u 
˜ z ‹ z ‹
~ r kt u
k~ ju kw n s‹
n ww n ‹
{ q r u  q s
{ n wjkt i ln w
r q
u lu  u ~ jq
sj n t ‹
zkln
t q ~ jw ‡ wkq … n r n
z u kj q s
lksjn u lu  u ~ jq s
t q lu t o p q …
su w
q w r u ~ n r n
sp q
q s
t i
i 
h ww n ‹
r u
~ n ji w n l™ w u { w u s u ~ j n
lksjn
 n Œ u m x i u q lj k q
 n ks
ln r q
r u
~ y s k q u lu  u ~ j q q i ‡ jq  q … u n lk sj n u sj kŒ u w Œ n m kn ‹ ~
u s{ u w n ‹
i 
n r  kj u 
k~ sjŠ ~ t kn
OrderedCollection
u lu  u ~ jq s ˜t q 
jq r q s
y
zi ~ r n  u ~ jn l…
k~ s u w kr q
y
n jw n Œ y s
z k| n ‹
 n ks u zkt ku ~ ju s …
h q
jn  n ~ v q
u s{ u w n …
sjn t kj i n l  u ~ j u
sjn t j k{ q
su  { w u
u 
x i u
v n
kj i n l  u ~ j u
y
™ ‹ z zk‹ k
~
q
r u
q
u lu  u ~ jq
jq r n s
jq r q s
u lu  u ~ jq
… n
r n r q s
n s
n
sjw n t jq
x i u
zq k
k~ su w o  u s
sp q
q s
r n
n t u s sq s
zw u ~ ju
u
sp q
z~
kj i n l u ~ j u w u z u w k q k~ su w o p q { q w { i j u s w u  q o  u s { q w ˆ uj …
† | u  { lq ‰
u
r u

˜™ …
t v n  n w jq { q …
y
r u
q w r u ~ n r n
{ q w
jn 
i  n
u lu  u ~ jq …
ju 
h s sk ‹
r k u ~ sp q
n t u r u w n q s s u i s u lu  u ~ jq s n jw n Œ y s r u i 
{ n ln Œ w n s‹ i  n
“ “ …
q i
x i u
t q 
n t u s s Œ u k s
u t jq s‹ x i u w ~ q k~ t kq x i u w ~ q zk
q
q i jw n s
u sjp q
t q  q
t q  q
~ p q
OrderedCollection
u
t q lu t o p q
‹ q s n ww n s sp q
— n l
{ u w  kj u
utjq
i  n
t q lu t o  u s
OrderedCollection
OrderedCollection
y
w u ln jkŒ n s
q i jw n s
^ f ^ f _ bb a ` _ ‰
q w
n ww n jklkm n o p q r u i  n
w u  q o  u s s u n 
z u kj n s ~ q
OrderedCollection
zk
r n
t q  q
sj n t ‹ z n m u ~ r q
t q 
x i u
n s k~ su w o  u s
t q lu t o p q …
| anOrderedCollection |
anOrdered := OrderedCollection new.
! "
! !
n w n
anOrderedCollection addLast: 1.
“i.e., push: 1”
anOrderedCollection last.
“1 i.e., top”
anOrderedCollection removeLast.
“1 i.e., pop”
anOrderedCollection isEmpty.
“true”
n ly 
r n
 u ~ s n ˆ u 
 u ~ sn ˆ u ~ s r u
k~ su w o p q
addLast:
‹
q s
utjq s
q
r u
OrderedCollection
n r  kj u 
n k~ r n
n s
t q  q ‰
addFirst: anObject
add: anObject
s
q
q w r u ~ n o p q
y
SortedCollection
q  ks sp q
n
“o mesmo que addLast: anObject”
q w r u ~ n o p q
‰
k~ ju w~ n ‹
utjq s
{ q w
r u sjn
q w r u 
t ln s s u
 n ~ j} 
t w u st u ~ ju ‹
u | { w k k~ r q
i  n
su ~ jkr q
t q ~ r ko p q
q s
su i s
ln jq …
u lu  u ~ jq s
i jklkm n r q w
lq t q
~ i 
t q 
q w r u ~ n r q s …
{ q r u w ‡
r q ks
q w
n lj u w n w
n
n wˆ i  u ~ jq s …
† | u  { lq ‰
| anArray aSortedCollection |
anArray := #( b a c d ).
“(*)”
aSortedCollection := anArray asSortedCollection: [ :x :y | x > y ].
^ aSortedCollection
h
t q ~ r ko p q
u lu  u ~ jq s
r u ~ jwq
r q
lq t q
t q ~ s u t i j kŒ q s
ju w ‡
{ q r u
x i u
su w
“responde SortedCollection ( d c b a )”
u ~ ju ~ r kr n
u
sn jksz n m u w …
t q  q
q
n
t q ~ r ko p q
lq t q
zq w
x i u
q  kj kr q
x i n lx i u w
u 
(*)
‹
{ n w
r u
k …u …‹
su
u st w u Œ u w  q s n { u ~ n s
anArray asSortedCollection
n
t ln s su
i  n
q w r u ~ n o p q
List:
r n
SortedCollection
h
t ln s su
t q 
x i u
i  n
~ q Œ n
h s
si
List
i jklkm n ‹ { q w
t w u st u ~ ju ‹ ~ q
t q 
Model
zq w n 
™ …
k~ n
q w
n s
q  ks sp q ‹ q
su ~ jkr q
k~ jw q r i m kr q s‹ ~ q
q
[ :x :y | x <= y ]
x i u
t q ww u s{ q ~ r u
ln jq …
t n w n t ju w sjkt n s
u | u  { lq ‹
lq t q
r u
k~ kt kn l u ~ ju
u ~ jn ~ jq
OrderedCollection
q s
{ q r u 
u lu  u ~ jq s
s u w
u
sp q
SortedCollection
q w ˆ n ~ km n r q s
q w r u ~ n r q s
~ q
˜u
n k~ r n
{ u ln
li ˆ n w ‹ “ ‹
q w r u 
su 
t w kn w
lksjn …
t q lu t o  u s
t ln s su s r u
u 
x i u
t n r n
u lu  u ~ jq
SequenceableCollection,
{ q r u
jn ks
su w
t q  q
n t u r kr q
{ q w
k sj ‹ h w w n ‹
i 
jwk~ ˆ
~ r kt u
u
k~ ju kw q ‹
wr uwur
“ ‹
n s
q llu t j kq ~ ‹
! "
! !
{ q r u 
su w
t q ~ t n ju ~ n r n s
n r  kj n
kˆ i n l u ~ ju
 u s q
j k{ q
r q
i s n ~ r q
~ r kt u s
n
 u ~ sn ˆ u 
k~ j u kw q s …
w u t u { jq w ‹ t q ~ ju ~ r q
h
, .
 u ~ sn ˆ u 
q s u lu  u ~ jq s r u
n wˆ i  u ~ jq
,
n 
w u s{ q ~ r u
y
q i jw n
i  n
t q lu t o p q
~ q Œ n
x i u
t q lu t o p q
r q
n s n s t q lu t o  u s … † | u  { lq ‰
| anOC anArray combination |
anOC := #(1 2 4) asOrderedCollection.
anArray := #( a b c) .
combination := anOC , anArray
“responde OrderedCollection (1 2 4 #a #b #c)”
Dictionary
r q s
su i s
‰
jklkm n i  n
u lu  u ~ jq s …
t v n Œ u
u
~ p q
zn t jq ‹
~ u t u s sn w kn  u ~ ju
n
t v n Œ u
{ q r u
su w
~ i  y w kt n
x i n lx i u w
{ n w n
q
w u zu w u ~ t kn w
u tjq
t n r n
r kz u w u ~ ju
r u
i 
nil
† | u  { lq s ‰
| listaTelefonica |
listaTelefonica := Dictionary new.
listaTelefonica at: ‘Maria’ put: 123.
listaTelefonica at: ‘Manuel’ put: 456.
( listaTelefonica includesKey: ‘José’ )
ifTrue: [ ^ listaTelefonica at: ‘José’ ]
ifFalse: [ ^ ‘Não existe na lista’ ].
n lj u w ~ n j kŒ n  u ~ j u
listaTelefonica at: ‘António’ ifAbsent: [ ^’Não existe na lista’ ].
listaTelefonica removeKey: ‘Maria’ ifAbsent: [ ^’Não existe na lista’ ].
…
c b_ g
f uˆ  u~ jq
d ` b e _
r u
t
r kˆ q
f a _ b a x i u
g
w u s{ q ~ r u
x i n ~ jq s
r ˆ kj q s
k { n w u s
u | ksju 
~ i 
r n r q
k~ ju kw q …
|n|
n := 12345.
^(n printString select: [:e | e odd]) size
! " ! ! !
…
u ˆ  u ~ j q r u t r kˆ q x i u u s t w u Œ u ~ q
…
~ i  n
r n r n
zw n su …
— w n ~ st w k{ j q
q w
u | u  { lq ‹
q
Transcript
r n r n
n
~
zw n s u
 u wq r u q t q ww} ~ t kn s r u t n r n lujwn
sjq
y
i 
u | u  { lq
‹
ju w u  q s
~ q
su ˆ i k~ ju ‰
e -> 2
i -> 1
l -> 1
m -> 2
...
| aString aBag |
aString := Dialog request: ‘Frase:’ initialAnwer: String new.
aBag := Bag new.
aString do: [ :char | char isLetter
ifTrue: [ aBag add: char asLowercase ]].
aBag asSet asSortedCollection do: [ : aLetter |
Transcript show: aLetter printString, ‘->’,
(aBag occurrencesOf: aLetter) printString; cr].
^
a e g
^ a _ c f e f e g e ^ e
e ^ _
d f e ^
_ g e g g d ` _ g ` ^ e ` e f _ g
n lu
n ll‹
w n u ‹
“ – €   “ ” € “ ‚
{ { uw n r r lu
ƒ €ƒ k~ t q 
kŒ u w ‹
‹
 
v j j { ‰ … t k ~ t q  … t q 
ksi n l
q w s h { { lkt n jkq ~
 ƒ
”
 €
Ž
ƒ ” ‚
ƒ €ƒ ‹
w u ~ jkt u
…
s  n l lj n l u Œ u lq { u w
s
i kr u ‹
‹ …
! " ! ! ! !
Download

Classes fundamentais da hierarquia Collection