Что-то совсем скучно стало в разделе "Программирование". Иногда
хочется, чтоб здесь появлялось что-то еще, кроме ученических
вопросов. Летом была хорошая ветка про ABRACADABRA. Ну а это моя
попытка немного оживить раздел.
===
Все знают, что первой программой на любом языке программирования
должна быть программа, выводящая на консоль всем известную
строку. Однако есть варианты, что именно выводится - от простой
ученической поделки, печатающей "hello world" до версии PRO со всеми
свистелками и эээ... висюльками - "Hello, World!".
Всего возможны 16 вариантов, так может выводить их все? Попробуем ...
Версия 1. Python
Самый скучный язык (после Java, разумеется). Ну и программа
соответствующая:
python -c '
ass = ["hello", "Hello"]
bss = [" ", ", "]
css = ["world", "World"]
dss = ["", "!"]
for a in ass:
for b in bss:
for c in css:
for d in dss:
print(a+b+c+d)
'
Версия 2. Perl
Замечательный язык, полностью заслуживающий такие определения,
как "исполняемый шум" и "код только для записи":
perl -e 'print "hello world\n" x 16' |
perl -lpe '$i++%2 and $_.="!"' |
perl -0777 -pe 's/(w.*?w.*?)w(.*?)w/$1W$2W/sg' |
perl -pE 's/ /, / if $. ~~ [5..8,13..16]' |
perl -0777 -pe 'substr($_, 104)=~y,h,H,'
Версия 3. Ruby
Подходящий язык для тех, кого привлекает Восток, занимают загадки и
символы, и заключенный в них скрытый смысл:
ruby -e '
16.times do |n|
hello = "hello world"
hello.sub! /$/, "!" if n & 1 != 0
hello.sub! /w/, "W" if n & 2 != 0
hello.sub! /\s/, ", " if n & 4 != 0
hello.sub! /h/, "H" if n & 8 != 0
puts hello
end
'
Я старался (насколько возможно) передать в этих программках дух
используемого языка. По крайней мере как я понимаю. Получилось?
Если интересно, то добавляйте языки и варианты. И да, кто автор этой
фразы, где она появилась впервые, какой вариант использовался, и,
главное, почему именно этот вариант был выбран. (Я знаю

).