Я хочу знать, можно ли отделить файлы в прологе, например: Я хочу иметь свой интерфейс, правила, факты, проконсультироваться в отдельных файлах и заставлять их работать вместе.Как отделить файлы в прологе
ответ
Короткий ответ, да. Длительный ответ, зависит от того, что вы подразумеваете под «интерфейсом» и насколько простыми или сложными являются ваши требования. Как указано в mbratch, стандартная директива ISO Prolog include/1
может использоваться для включения, например, набор предикатных директив в файлах, содержащих определения для этих предикатов. Если, с другой стороны, ваше приложение требует нескольких реализаций одного и того же интерфейса, вы можете использовать модули Prolog вместе с директивой include/1
, где каждый модуль будет обеспечивать реализацию в зависимости от того, что вы хотите в качестве интерфейса или используете Logtalk, который предоставляет интерфейсы как объекты первого класса. Однако более обоснованный совет и подробный ответ требуют от вас предоставления дополнительной информации о том, что вы пытаетесь выполнить.
Привет, Паоло, когда я сказал интерфейс, я говорю о GUI, используя xpce. То, что я пытаюсь сделать, просто, мне не нравится идея держать все в одном файле (факты, правила, консультации, gui), я хочу, чтобы факты были только в одном файле, правила в другом файле и так on, и я хочу иметь доступ к фактам в моих правилах или консультироваться ... –
Да - посмотрите «модули» в документации SWI-Prolog.
Короче говоря, вы проконсультируетесь с одним файлом, и он загружает другие. Итак, у вас есть a.pl, b.pl, и так далее
здесь b.pl
медведь (X): - запись ('Я вижу медведя под названием'), WriteLn (X). bull (X): - напишите («Я вижу быка по имени»), writeln (X).
на вершине b.pl
поставил
: - модуль (B, [несет/1]).
Теперь вы можете использовать медведь (значение/1 означает «с одним аргументом») вне этого файла.
в a.pl поставил
: - use_module (б).
Обратите внимание, что нет .pl на этом
, а затем вы можете обратиться нести
окончательная программа
a.pl
: - use_module (б).
go: - bear ('Yogi').
b.pl
: - модуль (б, [несет/1]).
медведь (X): - напишите («Я вижу медведя по имени»), writeln (X). bull (X): - напишите («Я вижу быка по имени»), writeln (X).
Таким образом, вы можете сделать что-то вроде быка/1 частного для одного модуля.
- 1. Как отделить файлы от папок?
- 2. Как отделить файлы для «виджетов» в codeigniter?
- 3. Как отделить файлы на основе рекурсивного grep
- 4. Упростить Выражения в Прологе
- 5. Piedon Celery - Как отделить файлы журнала
- 6. Как отделить файлы extjs4 от связанных пакетов
- 7. Как отделить файлы js, html и php
- 8. Как отделить файлы .java в eclipse при экспорте в jar
- 9. Как отделить ArrayCollection в отдельные файлы в Flex?
- 10. Shiny - Как отделить функции рендеринга в разные файлы?
- 11. Как отделить файлы и имена папок в массиве PHP
- 12. Как отделить Socket.io код маршрута в разные файлы
- 13. Как я могу отделить субдокумент mongoose в отдельные файлы?
- 14. Как отделить конструктор, явно объявленный в файлы .h & .cpp?
- 15. Есть ли способ отделить файлы от C++?
- 16. Как отделить стойку в ActiveRecord?
- 17. Как отделить голову?
- 18. Разделительных имя атома, разделенный тир в Прологе
- 19. Как удалить подпрограммы в прологе?
- 20. Как проверить отсутствие в прологе
- 21. Как запросить Правила в прологе?
- 22. Как заполнить список в Прологе?
- 23. как вычислить функцию в прологе?
- 24. Как читать предикаты в прологе
- 25. как читать файл в прологе?
- 26. Как вернуть структуры в прологе
- 27. как обрабатывать строки в прологе
- 28. Как перечислить список в Прологе?
- 29. Как предотвратить дубликаты в прологе
- 30. Как разбить список в прологе?
Да, это возможно. Посмотрите директиву 'include'. – lurker