"to:do:" je opravdu jedna zprava (lze si predstavit jako metodu, ktera ma dva parametry). To, zda je "do:" pri "1 to: 10 do: ..." zprava pro 10 nebo soucast zpravy pro 1 se rozhoduje podle urcitych pravidel, ktera si tedka nepamatuju ;-) (asociativita, ...). Ale v tomto pripade to je jednoznacne, protoze 10 (SmallInteger) nema zpravu (metodu) "do:".
P.S. Do odkazu pod clankem bych mozna doplnil:
http://smalltalk.cincom.com/
ktery je pro nekomercni ucely take zdarma.
1. Hodnoty parametrů se od jmén selektorů ("to" & "do") odděleny právě těmi dvojtečkami. Tedy např.:
objektik posliJeden: param1 aDruhejParametr: param2.
je příklad jedné zprávy s dvěma parametry a jmenuje se "posliJeden:aDruhejParametr:".
2. Co se týče druhého dotazu, tak zpráva "to:do:" je implementována pouze ve třídě Number. Pokud bys chtěl provádět cyklus typu "foreach" pro soubor nějakých objektů, tak k tomu se používají takzvané kolekce (abstraktní třída Collection a její potomci) a jejich metoda "do:" (např.
#(jablko hruska svestka) do: [:ovoce | ovoce snist ].
).