Gnu prolog 简单数学上的Gnu Prolog错误

Gnu prolog 简单数学上的Gnu Prolog错误,gnu-prolog,Gnu Prolog,给定以下代码: example1(X) :- X is 1. example2(X) :- X is 1+1. 当我使用gprolog运行它时,我得到: $ gprolog GNU Prolog 1.4.0 By Daniel Diaz Copyright (C) 1999-2011 Daniel Diaz | ?- ['example']. compiling /Users/tomo/projects/7L7W/prolog/day2/example.pl for byte code...

给定以下代码:

example1(X) :- X is 1.
example2(X) :- X is 1+1.
当我使用gprolog运行它时,我得到:

$ gprolog 
GNU Prolog 1.4.0
By Daniel Diaz
Copyright (C) 1999-2011 Daniel Diaz
| ?- ['example'].
compiling /Users/tomo/projects/7L7W/prolog/day2/example.pl for byte code...
/Users/tomo/projects/7L7W/prolog/day2/example.pl compiled, 1 lines read - 490 bytes written, 7 ms

(1 ms) yes
| ?- example1(X).

X = 1

yes
| ?- example2(X).

Fatal Error: Segmentation Violation
但是,如果我编译该文件:

$ gplc example.pl -o example
$ ./example 
GNU Prolog 1.4.0
By Daniel Diaz
Copyright (C) 1999-2011 Daniel Diaz
| ?- example1(X).

X = 1

yes
| ?- example2(X). 

X = 2

yes
我错过了什么?为什么它在第一种情况下出现故障,在第二种情况下运行正常


(如果有帮助的话:Mac OS 10.7.2)

这可能是gprolog中的一个bug。报告就行了


此外,您可能更喜欢使用更受欢迎和支持的SWI Prolog。

这可能是gprolog中的一个bug。报告就行了


此外,您可能更喜欢使用更受欢迎和支持的SWI Prolog。

是的,我想这是对的。询问它比订阅邮件列表来报告bug更容易,所以我想我先试试这里:-)是的,我想是的。询问它比订阅邮件列表报告错误更容易,所以我想我先试试这里:-)