Nov 23, 2005 16:46
Я знаю, почему меня с детства так привлекает программирование. Потому что это алхимия, а иногда и чистая магия. Благородное ремесло, в любом случае. И как там еще это называлось у Фулканелли? высокое искусство?
Следующий абзац нужно переписать языком сэра Томаса Брауна, по меньшей мере; в русском языке ему, должно быть, соответствует язык Ломоносова (?), но без специальных упражнений не рискну.
"Сие процедурие зачищать ленту махины Тюринга должно, после того, как оной махины пишечитательная головка с ленты все символы, нужные для образования символа более высокого порядка, собрала. Стеком исторически вот уже два месяца называется та часть ленты, что слева от головки; та, что справа, называется листом или инпутом. Процедурие получает в аргументах ссылки на стек и лист, а также хэш со списком использованных символов, в котором типу символа сопоставлены сам символ и индекс его на ленте -- положительный для листа и отрицательный для стека, каковой есть такой же лист, только рассматриваемый с конца."
И вот собственно алхимия:
sub clear_tape
{
my ($stack, $list, $hash) = @_;
map(splice(@{(($_ < 0)
? $stack
: $list)}, $_, 1),
sort({abs($b) <=> abs($a)}
grep(defined($_),
map({$_->{index}}
values(%$hash)))));
}
Может быть, все-таки я давно уже пишу на LISPе, сам того не подозревая?
devel,
кси