2+2*2=::::::
сегодня в 15:49
Осталась неделя до отпуска. Чтоб ничего не сломать занимаюсь всякой фигнёй.
Помните детсадовскую задачку «Сколько будет два плюс два умножить на два?»
Решил это выяснить на sed:
Помните детсадовскую задачку «Сколько будет два плюс два умножить на два?»
Решил это выяснить на sed:
$ sed -f ./1.sed
2+2*2
;2+;2*;2
::+::*::
::+::*:
::+::;::*
::+::::
::::::
6
Сам исходник
s/[0-9]/;&/gp
s/0//g; s/1/:/g; s/2/::/g; s/3/:::/g; s/4/::::/g; s/5/:::::/g; s/6/::::::/g; s/7/:::::::/g; s/8/::::::::/g; s/9/:::::::::/g
: ;; s/:;/;::::::::::/gp; t ;
s/;//gp
s/*:/*/gp
: *;
s/\(:*\)\*:/\1;\1*/gp;
t *
s/*//g
s/;//gp
s/+//gp
: -; s/:-:/-/gp; t -
s/-$//gp
: ?
s/::::::::::/;/gp
s/;\([0-9]*\)$/;0\1/p
s/:::::::::/9/; s/::::::::/8/; s/:::::::/7/; s/::::::/6/; s/:::::/5/; s/::::/4/; s/:::/3/; s/::/2/; s/:/1/
s/;/:/gp
t ?
s/^$/0/
Меня хватило на реализацию операций +-*, до деления ход не дошёл.
Практической пользы не ищите — здесь её нет.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
По теме: ( из рубрики Статьи )
- Опубликован первый трейлер четвертого сезона сериала «Шерлок»
- [Перевод] Elixir: начинаем работу с Plug
- Летнее обновление на Хабре: «Администрирование», вес голоса и немногое другое
- Comic Con-2016: Кара Делевинь, Марго Робби, Бенедикт Камбербэтч и другие на фестивале в Сан-Диего
- Глафира Тарханова. Главное — мы есть друг у друга
- Просмотр видео «сбоку»