99 бутылок: Miva, Ruby
23. Ruby. Скриптовый язык, который я посчитал очень похожим на Перл, поэтому писал на нём как на Перле. Отличия есть, и существенные, но тем не менее. Как и предыдущем языке, есть префиксные различия между глобальными (начинаются на «$» или «@») и локальными переменными. Из странностей — конструкцию «1?2:3» не удалось заставить работать с локальными переменными. Возможно это особенность языка, но не ясен её смысл.
Скрипт, выводящий песню о пиве.
# Beer song. Written by Evgeny Stepanischev
def Beer (n)
if n!=0 then
print n
else
print 'No'
end
print " bottle"
print "s" unless n==1
end
$i = 99
while $i>0 do
Beer ($i)
print " on the wall, "
Beer ($i)
print "\nTake one and pass around,\n"
$i-=1;
Beer ($i)
print " on the wall.\n\n"
end
print <<EOF
No more bottles of beer...
Go to the store and buy some more...
99 bottles of beer.
EOF
22. Miva. Доступ к этому языку я получил чисто случайно. Будем считать, что я нашел распечатки парочки программ на этом языке на улице. Это недалеко от истины, ибо документацию по Miva я в глаза не видел.
Итак Miva — это скриптовый полнофункциональный язык, применяемый исключительно в веб-программировании. Синтаксис, на мой взгляд, несколько неуклюж, что, впрочем, легко объяснимо способом его внедрения, и неоправданно многословен. Из интересных особенностей — разделение локальных, глобальных и системных (?) переменных через объекты «l», «g» и «s».
Скрипт, выводящий песню о пиве (beer.mv)
<HTML><MIVA STANDARDOUTPUTLEVEL = "text, html, compresswhitespace">
<MvCOMMENT>
| Beer song. Written by Evgeny Stepanischev
</MvCOMMENT>
<MvFUNCTION NAME="Beer" PARAMETERS="n">
<MvIF EXPR = "{ l.n NE 0 }">&[ l.n ]<MvELSE>No</MvIF>
bottle<MvIF EXPR = "{ l.n NE 1 }">s</MvIF>
of beer</MvFUNCTION>
<MvASSIGN NAME = "g.i" VALUE = 99>
<MvWHILE EXPR = "{ g.i GE 1 }">
<MvEVAL EXPR="{ Beer(g.i) }"> on the wall, <MvEVAL EXPR="{ Beer(g.i) }">.<BR>
Take one and pass around,<BR>
<MvASSIGN NAME = "g.i" VALUE = "{ g.i - 1 }">
<MvEVAL EXPR="{ Beer(g.i) }">
on the wall.<BR><BR>
</MvWHILE>
No more bottles of beer...<BR>
Go to the store and buy some more...<BR>
99 bottles of beer.
</HTML>
Хм... Решил эту задачку совсем по-детски :) Но главное для программиста-результат:)
Комментарий для Андрей:
Что заставило вас комментировать заметку, которой 11 лет?