1
牛羚序言段錯誤考慮下面的代碼:上簡單的數學
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)
是的,我想是的。在SO上詢問比訂閱郵件列表來報告錯誤更容易,所以我想我先試試這裏:-) – Tomo