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

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

Здорово, но только в теории. А на практике это мало где применимо, как, к сожалению, и сам Пролог.

Непонятен смысл статьи. Зачем всё это? Вот что я нашёл:

написать интерпретатор Prolog, такой, что его состояние хранится в переменной

Но зачем хранить состояние в переменной? И где пример эффективности такого подхода? Волк, коза и капуста из примера в статье решаются весьма просто без записи фактов базу. Но даже приведённая программа с записью в базу никак не подчёркивает хоть какие-то преимущества "состояния в переменной". Автор считает, что читатели обязаны внимательно изучить весь код и самостоятельно понять, зачем это всё написано? Или он просто забыл добавить пояснения? Ну и испанские слова без перевода тоже несколько напрягают не знающих испанского.

Эффективность целью не ставилась. Есть широкий класс игр, которые удобно моделировать на Prolog. Интерпретатор позволяет решать более-менее общие задачи о таких играх.

Эффективность - широкое понятие. Вы заявили про эффективность затрат времени разработчика, но никак не продемонстрировали реальное наличие такой эффективности.

Если говорить проще, то ваш пример не даёт возможности увидеть, как "Интерпретатор позволяет решать более-менее общие задачи". Решение каких-то задач он даёт, но где вы увидели более общие? И если более общих нет, то значит и по критерию эффективности затрат времени разработчика ваш подход получается неэффективным.

Общие задачи - задачи, в которых условия и ограничения формулируются на языке общего назначения.

Это точно. И ещё масло тоже масленное.

Ура, ура, ура! Наконец-то оригинальная статья по декларативному/функциональному!

А на чём вы порекомендуете с этим поиграться? Я давно считал, что MUD надо писать на чём-то неимперативном... Хотя бы частично. Но не рассматривал эту тему пристально.

В порядке развлечения, можно тот же Nani Search доделать. Как язык правил для MUD пролог вызладит привлекательным.

У меня есть мысли применить это для программирования макросов, которые могли бы вмешиваться в работу компилятора на момент проверки типов (поиск пути получения объекта нужного типа из доступных объектов), но они пока очень сырые.

А вы можете подраскрыть тему "реализации методов генерации программ с помощью машинного обучения, таких как Индуктивное логическое программирование (спасибо @robofreakза статью в Википедии)." ?

Я глубоко не разбирался, пока руки не дошли. Когда-то давно наткнулся в книге по ИИ упоминание этого метода машинного обучения, генерирующий программу на Prolog по примерам поведения.

Вау, спасибо, наконец-то кому-то пригодилась статья из Википедии, которую я написала 9 лет назад!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории