Pull to refresh

Comments 23

Дело было вечером, делать было не х… руки в общем чесались.
Вы весьма спецевически проводите свободное время, но результат интересен.
Зато с пользой. Не часто встретишь девушку которая потратит свободную минуту на что-то интересное, а не на макияж и вконтакт
UFO landed and left these words here
Вам нужно обратиться в Шведский суд ;)
От вас узнал, что девушка, посмотрел и правда.
На самом деле все от зависти, у мне не удается выкраить столько времени, что бы сделать что то подобное.
Не хватает только фото к статье
Ну, на самом деле языки типа Transact-SQL и PL/SQL являются вполне себе полными по Тьюрингу, так что ничего удивительного. Хотя так или иначе, очень занятно. Спасибо за статью.
Мой 75 летний преподаватель алгоритмов оценил бы это.
UFO landed and left these words here
Порадуйте хабр. Заодно узнают, что такое фокспро.
Интересно, это Вы так задумали, что все переменные у вас в глобальной области видимости?
Я ждала этого вопроса :) Просто тут переменных многовато, и блок объявлений локальных переменных занял бы много места. Фактически это целый блок кода, который ничего не делает.
Я решила сосредоточиться на алгоритме, поэтому использовала глобальные переменные.
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 — задача интересная. наоборот, однако, любопытнее.

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

Articles