neni COUNT definovano jako : COUNT ( ^addr --- ^addr+1 n ) ... ; ?
takze vrati delku retezce a adresu s vlastnim zacatkem retezce (coz je vlastne adresa o jedno vetsi). Nemate teda nikde toto slovo definovany,ani z textu nelze definice moc poznat, pouze v ukazkovem prikladu COPY$ je po zavolani count ( druhy prvni prvni ) --- ( druhy prvni prvni delka ), coz je dle me spatne a melo by byt ... --- ( druhy prvni prvni+1 delka )..jinak by vlastne bylo volani DUP a nasledne DROP zbytecne.
Pravdopodobne jste pri definovani COUNT mel na mysli nevyhodu zustatku adresy retezce na zasobniku..
--bim
Tou nevyhodou COUNT jsem mel na mysli prave nechani adresy retezce na zasobniku. Samozrejme to neni vzdy nevyhoda, jenom IMHO nazev toho slova neodpovida presne jeho cinnosti, resp. ponekud se to vymyka beznemu chapani slov ve Forthu (ty ve vetsine pripadu neco ze zasobniku odeberou a ulozi na nej vysledek). U COUNT se nekdy stava, ze se na tu adresu zapomene, coz se samozrejme v delsim programu spatne hleda (ja vim, kazde slovo by se melo ihned po vytvoreni otestovat a potom na nej postvat .S, ale jsme jenom lidi :-)
> ... ty ve vetsine pripadu neco ze zasobniku odeberou a ulozi na nej vysledek
A to je prave presne to, co dela COUNT. Odebere ze zasobniku adresu pocitaneho retezce a ulozi na nej adresu a pocet znaku nepocitaneho retezce:
Ano, s tim naprosto souhlasim, ale proc se to potom jmenuje COUNT? To jmeno naznacuje jinou funkci, nez to ve skutecnosti provadi, coz mi trosku vadi (a zacatecnikum jeste vic).