Как стать автором
Обновить

Комментарии 23

Дело было вечером, делать было не х… руки в общем чесались.
Вы весьма спецевически проводите свободное время, но результат интересен.
Зато с пользой. Не часто встретишь девушку которая потратит свободную минуту на что-то интересное, а не на макияж и вконтакт
НЛО прилетело и опубликовало эту надпись здесь
Вам нужно обратиться в Шведский суд ;)
От вас узнал, что девушка, посмотрел и правда.
На самом деле все от зависти, у мне не удается выкраить столько времени, что бы сделать что то подобное.
Не хватает только фото к статье
Ну, на самом деле языки типа Transact-SQL и PL/SQL являются вполне себе полными по Тьюрингу, так что ничего удивительного. Хотя так или иначе, очень занятно. Спасибо за статью.
Мой 75 летний преподаватель алгоритмов оценил бы это.
НЛО прилетело и опубликовало эту надпись здесь
Порадуйте хабр. Заодно узнают, что такое фокспро.
Интересно, это Вы так задумали, что все переменные у вас в глобальной области видимости?
Я ждала этого вопроса :) Просто тут переменных многовато, и блок объявлений локальных переменных занял бы много места. Фактически это целый блок кода, который ничего не делает.
Я решила сосредоточиться на алгоритме, поэтому использовала глобальные переменные.
1. Двигаться по ленте влево и вправо
2. Читать с ленты символ
3. Писать на ленту символ
4. Переходить в различные состояния
5. Можно грабить корованы (trollface картинка)
Ксения, я в ахуе! Вот это моск %)
Мсье, вы просто образец галантности!
=)))))) спасиб
Думаю, будет лучше, если Вы заключите код в тег <source lang="mysql"></source>
Мне немного не понравилось то, что Вы модифицируете входную строку, добивая ее нулями. Возможно, было бы лучше проверять, не вышли ли мы за границы входной строки, и, если да, то в качестве текущего символа рассматривать какой-нибудь \0 (При этом не изменяя входных данных).
То есть что-то вроде такого
IF @p < LENGTH(sinput) THEN 
	SELECT @inread:=SUBSTRING(sinput, @p, 1) FROM ribbon;
ELSE
	@inread := 0;
END IF;
Фактически это не модификация входной строки, а костыль для имитации МТ. Это здесь входная строка изначально состоит только из входной строки, а в МТ за ней следует бесконечное количество пробелов.
Если входные данные закончились, и за ними больше ничего нет, то МТ считывает пробел.
можно продлить ленту и в другую сторону, используя для этого вторую таблицу.
правда конструкцию «машины» придется усложнить.

но такая лента все равно получится не совсем бесконечной т.к. размр памяти/дисков ограничен.
написать brainfuck на SQL — задача интересная. наоборот, однако, любопытнее.

вы бы реализовали циклы с инкриментами и декрементами и таймстамп комманду придумали — можно было бы сервера бенчмаркать тяжелыми брейнфак аппликушками.
Очень интересно. Спасибо. Не очень представляю, как это можно использовать в реальной жизни, однако сама по себе демонстрация наглядная :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации