GNU Prolog에서 ensure_loaded/1 work 을 다른 많은 Prolog 시스템에서도 사용할 수있는 해결 방법이 있습니까? 목표는 나머지 부분이 코드가 어떤 Prolog 시스템을 사용하는지에 관계없이 ensure_loaded/1을 사용할 수 있도록 전치부를 갖는 것입니다. workaround ensure_loaded/1 GNU Prolog?
나는 시도 다음:- multifile(term_expansion/2).
term_expansion((:- ensure_loaded(X)),
(:- atom_concat('<base>\\', X, Y),
include(Y))).
을하지만, 다음 쿼리는 작동하지 않습니다
:- ensure_loaded('suite.p').
경로 계산 자체가 질문 의 문제가 아니라의 재정 아니다 GNU Prolog의 지시어. 문제를 일으키는 다른 지시문은 입니다. meta_predicate/1. 바이트 코드 충돌 다음과 같이
안녕
A는 ** 필요 ** 기능은 정의 할 수 있도록 '파일이 이미 내 응답으로 수행되는,로드 된 경우/1' 지침 또는 술어가 시스템을 조회 할 수있다 ensure_loaded 'predicate_property/2'에 대한 호출에 의해 간단하게 해결되지는 않습니다. 그것은 내 게시물의 주요 기여입니다. 'absolute_file_name/2' 호출은'prolog_file/1' 속성이 절대 파일 경로를 사용하기 때문에 필요합니다. 'include/1' 지시자는 파일이 이미로드되어 있는지 찾는 것을 돕지 않습니다. –