Segfaults 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

Что мне не хватает? Почему в первом случае происходит сбой, а во втором работает нормально?

(Если поможет: Mac OS 10.7.2)


person Tomo    schedule 20.11.2011    source источник


Ответы (1)


Вероятно, это ошибка в gprolog. Просто сообщите об этом.

Кроме того, вы можете предпочесть использовать SWI-Prolog, который более популярен и поддерживается.

person salva    schedule 21.11.2011
comment
Да, я думаю, это правильно. Спросить об этом на SO проще, чем подписаться на список рассылки, чтобы сообщить об ошибке, поэтому я решил сначала попробовать здесь :-) - person Tomo; 21.11.2011