Old lady swallowed a fly: Difference between revisions

m
→‎{{header|Phix}}: syntax coloured
(Add Draco)
m (→‎{{header|Phix}}: syntax coloured)
Line 2,920:
=={{header|Phix}}==
{{Trans|Ada}}
<!--<lang Phix>(phixonline)-->
<lang Phix>sequence lines = {"Perhaps she'll die!\n"}, animals = {}
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Perhaps she'll die!\n"</span><span style="color: #0000FF;">},</span> <span style="color: #000000;">animals</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
procedure swallow(string animal, second_line, integer permanent_second_line=TRUE)
printf(1,"There was an old lady who swallowed a %s,\n%s\n",{animal,second_line})
<span style="color: #008080;">procedure</span> <span style="color: #000000;">swallow</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">animal</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">second_line</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">permanent_second_line</span><span style="color: #0000FF;">=</span><span style="color: #004600;">TRUE</span><span style="color: #0000FF;">)</span>
if length(animals)!=0 then
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"There was an old lady who swallowed a %s,\n%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">,</span><span style="color: #000000;">second_line</span><span style="color: #0000FF;">})</span>
lines = prepend(lines,sprintf("She swallowed the %s to catch the %s,\n",{animal,animals[$]}))
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">animals</span><span style="color: #0000FF;">)!=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span>
end if
<span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">prepend</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"She swallowed the %s to catch the %s,\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">,</span><span style="color: #000000;">animals</span><span style="color: #0000FF;">[$]}))</span>
printf(1,"%s\n",{join(lines,"")})
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
if permanent_second_line then
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)})</span>
lines = prepend(lines,second_line&"\n")
<span style="color: #008080;">if</span> <span style="color: #000000;">permanent_second_line</span> <span style="color: #008080;">then</span>
end if
<span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">prepend</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">,</span><span style="color: #000000;">second_line</span><span style="color: #0000FF;">&</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)</span>
animals = append(animals,animal)
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
end procedure
<span style="color: #000000;">animals</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">animals</span><span style="color: #0000FF;">,</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
procedure swallow_all(sequence all)
for i=1 to length(all) do
<span style="color: #008080;">procedure</span> <span style="color: #000000;">swallow_all</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">all</span><span style="color: #0000FF;">)</span>
string {animal,line2} = all[i]
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">all</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
swallow(animal, sprintf("%s, %s a %s;",{line2,iff(animal="cow"?"she swallowed":"to swallow"),animal}), FALSE);
<span style="color: #004080;">string</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">,</span><span style="color: #000000;">line2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">all</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
end for
<span style="color: #000000;">swallow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%s, %s a %s;"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">line2</span><span style="color: #0000FF;">,</span><span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"cow"</span><span style="color: #0000FF;">?</span><span style="color: #008000;">"she swallowed"</span><span style="color: #0000FF;">:</span><span style="color: #008000;">"to swallow"</span><span style="color: #0000FF;">),</span><span style="color: #000000;">animal</span><span style="color: #0000FF;">}),</span> <span style="color: #004600;">FALSE</span><span style="color: #0000FF;">);</span>
end procedure
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
swallow("fly", "But I don't know why she swallowed the fly,");
swallow("spider", "That wriggled and jiggled and tickled inside her;");
<span style="color: #000000;">swallow</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"fly"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"But I don't know why she swallowed the fly,"</span><span style="color: #0000FF;">);</span>
swallow_all({{"bird", "Quite absurd"},{"cat", "Fancy that"},{"dog", "What a hog"},
<span style="color: #000000;">swallow</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"spider"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"That wriggled and jiggled and tickled inside her;"</span><span style="color: #0000FF;">);</span>
{"pig", "Her mouth was so big"},{"goat","She just opened her throat"},
<span style="color: #000000;">swallow_all</span><span style="color: #0000FF;">({{</span><span style="color: #008000;">"bird"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Quite absurd"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"cat"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fancy that"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"dog"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"What a hog"</span><span style="color: #0000FF;">},</span>
{"cow", "I don't know how"},{"donkey", "It was rather wonky"}})
<span style="color: #0000FF;">{</span><span style="color: #008000;">"pig"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Her mouth was so big"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"goat"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"She just opened her throat"</span><span style="color: #0000FF;">},</span>
printf(1, "There was an old lady who swallowed a horse ...\nShe's dead, of course!")</lang>
<span style="color: #0000FF;">{</span><span style="color: #008000;">"cow"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"I don't know how"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"donkey"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"It was rather wonky"</span><span style="color: #0000FF;">}})</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"There was an old lady who swallowed a horse ...\nShe's dead, of course!"</span><span style="color: #0000FF;">)</span>
<!--</lang>-->
 
=={{header|PHP}}==
7,795

edits