Count characters in lo..ol and print a phrase Assuming 'lol' with a variavle number of 'o's. Print a the following phrase: 

What does 1st, 2nd, 3rd, 4th ... 'o' stand for?


Examples:

lol    -&gt; What does 1st 'o' stand for?
loooool -&gt; What does 1st, 2nd, 3rd, 4th, 5th 'o' stand for?


So far I managed to write a 128 characters solution in Perl:

$l=(&lt;&gt;=~tr/o//);print"What does ";print$_,$_==1?'st':$_==2?'nd':$_==3?'rd':'th',$_&lt;$l?', ':''for(1..$l);print " 'o' stand for?";


and a 123 characters solution in Haskell:

p 1="1st";p 2="2nd";p 3="3rd";p n=show n++"th";main=putStr$"What does "++(foldr(++)"'o' stand for?"[p i++", "|i&lt;-[1..23]]);


How short can you write it?
GolfScript, 82 characters
&quot;What does &quot;\,2-,{)..10/10%1=!\10%`&quot;123&quot;\?)*&quot;thstndrd&quot;2/=+}%&quot;, &quot;*&quot; 'o' stand for?&quot;

Works even for &gt;100 'o's, test it online.