PRG писал(а):
Это и все, что понимается под марковскими языками?
Когда-то я на Дельфях делал интерпретатор для самого настоящего марковского языка - PROLAN/M. Самодельный язык, придуманный (или просто описанный? не знаю) неким В.В. Прохоровым и описанный в журнале ИНФорматика и Образование (ИНФО) в 86 году.
Суть языка была в том, что бы заменять во входной строке первое вхождение цепочки символов на другую цепочку, результат обрабатывается аналогично. Программа задавалась в виде:
(a,b), (bc, cde), и т.д. до (,)
в смысле:
(что_искать1, чем_заменить_1), (что_искать2, чем_заменить_2), и т.д. до (усё_на_этом)
После каждой замены цикл повторяется с начала программы, и так до тех пор, пока в результирующей строке не найдётся ни одной последовательности из списка, задаваемого "программой".
Там были ещё задачи, которые надо было решить на этом языке, увы, я решил только первые несколько, остальные просто не вкурил как решать... :о)) Такие, как "заменить число++ на число+1", тупой вариант типа
Код:
(199++,200) (299++,300) (399++,400) (499++,500)
(599++,600) (699++,700) (799++,800) (899++,900) (999++,1000)
(19++,20) (29++,30) (39++,40) (49++,50)
(59++,60) (69++,70) (79++,80) (89++,90) (99++,100)
(9++,10) (0++,1) (1++,2) (2++,3) (3++,4)
(4++,5) (5++,6) (6++,7) (7++,8) (8++,9) (,)
мне не понравился (он ограничен до 1998++), а как по-другому (что бы коротко и по всему диапазону натуральных чисел), я не догнал.
Подозреваю, PROLAN/M не был полным по Тьюрингу... Полон, но при условии бесконечных ресурсов... :о)
Этот язык показывает суть марковских языков - циклическую подстановку символов в строке вплоть до получения нужного результата.
Рефал на него не очень похож, но тем не менее считается не только функциональным, но и марковским тоже. Вроде ещё и Ребол относился к марковским...
ЗЫ. Этот В.В. Прохоров описывал ещё и ФЯ PROLAN/F - этакий микро-Хаскелл, жаль, я потерял тот номер... :о(
ЗЗЫ. В прикреплённом архиве - та самая моя "IDE" для PROLAN/M. :о))
ЗЗЗЫ. А вапще все эти ваши WHILE-DO, foreach и даже IF-THEN-ELSE - всего лишь синтаксический сахар, без которого при желании можно легко прожить... :о))))