2016-04-09 17 views
3

Fall: Ich habe eine Datei, solution.pl, wo ich die Regeln einer anderen Datei verwenden möchte (das ist die Definition des Programms, nicht an mich, aber ich denke es ist etwas üblich).So rufen Sie Fakten und Regeln aus einer anderen Datei

Also ich benutze Ciao Prolog und die Syntax scheint ensure_loaded ('c:/Path').

aber wenn ich versuche, die Regeln der anderen Datei zu verwenden, sagt es mir, er weiß nicht, welche Regel ich versuche zu verwenden.

Auf der anderen Seite, wenn ich auf der Konsole die gleiche Spur schreiben und dann erneut abfragen, funktioniert es.

Also habe ich mich gefragt, vielleicht ist die Syntax dafür auf der Konsole und auf einer Datei anders ??

Kann mir jemand einen Schritt für Schritt erklären, damit ich herausfinden kann, ob mir etwas fehlt? Was ich gerade mache, ist das Laden des Programms, wie ich es mit kleineren Programmen machen würde, und dann versuchen, Regeln der Datei abzufragen, die im Befehl use_loaded enthalten sind. Und wie gesagt, es scheint zu funktionieren, wenn Sie den Befehl außerhalb des Programms schreiben.

Antwort

2

in solution.pl, versuchen

:- ensure_loaded('c:/Path'). 

oder, wenn die Quelle in c:/Path eine Modul Richtlinie hat - das heißt, es beginnt mit :- module(name, [exported/arity, ...]).

:- use_module('c:/Path'). 
+0

mir fehlte das: - Teil. Wie ich es für selbstverständlich hielt, dachte ich, es wäre wie eine schnelle, aber warum. Vielen Dank, wirklich frustrierend, den Code zu kennen und ihn nicht richtig zu benutzen. – keont

Verwandte Themen