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...
/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

我错过了什么?为什么它在第一种情况下出现分段错误,而在第二种情况下运行正常?

这可能是gprolog中的一个错误。报告就行。

另外,您可能更喜欢使用更受欢迎和支持的wi - prolog

相关内容

  • 没有找到相关文章

最新更新