C# P#不在Visual Studio上工作
这是我在C#main类上的代码C# P#不在Visual Studio上工作,c#,visual-studio,prolog,C#,Visual Studio,Prolog,这是我在C#main类上的代码 PrologInterface pInterface = new PrologInterface(); Term R = SymbolTerm.MakeSymbol("7"); Predicate pred = new Es_Mayor_1(R, new ReturnCs(pInterface)); pInterface.SetPredicate(pred); bool result = pInterface.Call(); 这是Prolog的源代码(“es m
PrologInterface pInterface = new PrologInterface();
Term R = SymbolTerm.MakeSymbol("7");
Predicate pred = new Es_Mayor_1(R, new ReturnCs(pInterface));
pInterface.SetPredicate(pred);
bool result = pInterface.Call();
这是Prolog的源代码(“es mayor”在西班牙语中的意思是“更大”)。代码只有这两行
esMayor(X):-
>(X, 5).
程序崩溃并出现未知异常,这似乎是因为它无法识别比较操作。我还尝试使用通用语法X>5
,但仍然没有成功
An unhandled exception of type 'JJC.Psharp.Lang.PrologException' occurred in Psharp.dll
有什么我遗漏的吗?看完文件后,我认为鲍里斯是对的,你应该写信
IntegerTerm R = new IntegerTerm(7);
而不是
Term R = SymbolTerm.MakeSymbol("7");
看完医生后,我认为鲍里斯是对的,你应该写信
IntegerTerm R = new IntegerTerm(7);
而不是
Term R = SymbolTerm.MakeSymbol("7");
如果在Visual Studio中的调试器下运行代码,是否会从异常中获得更多信息?在正常的Prolog中,
仅当两边都有数字(或算术表达式)时才起作用。你的“7”
最终会变成别的东西吗?首先,你可以试着在你的Prolog代码中使用X@>5
(它比较任意术语),或者干脆用number(X)
,看看你的X在那一点上是否是一个数字。你能给出你的C程序的所有代码吗?是否有与之关联的Prolog程序?如果您在Visual Studio中的调试器下运行代码,是否会从异常中获得更多信息?在普通Prolog中,
仅当两边都有数字(或算术表达式)时才起作用。你的“7”
最终会变成别的东西吗?首先,你可以试着在你的Prolog代码中使用X@>5
(它比较任意术语),或者干脆用number(X)
,看看你的X在那一点上是否是一个数字。你能给出你的C程序的所有代码吗?是否有与之关联的Prolog程序?如果您在Visual Studio中的调试器下运行代码,是否会从异常中获得更多信息?在普通Prolog中,
仅当两边都有数字(或算术表达式)时才起作用。你的“7”
最终会变成别的东西吗?首先,你可以试着在你的Prolog代码中使用X@>5
(它比较任意术语),或者干脆用number(X)
,看看你的X在那一点上是否是一个数字。你能给出你的C程序的所有代码吗?是否有与之相关联的Prolog程序?