|
Hi Dave
Le 21/09/2012 20:14, Dave Sworin a écrit :
Please advise whether the following
behavior is a bug.
Test platforms tried: 1) Ubuntu 10.10
64-bit gprolog 1.3.1 and 2) Mint 13 64-bit gprolog 1.4.1
once((
(once(((4 == 5) ; (!,fail)))) ;
(write(a))
)).
This query writes the letter a to the
standard output. (I hope I typed all the parentheses
correctly!)
Correct behavior.
If I remove the once/1 call inside the
outer once/1, the cut(!) and fail works as expected.
once((
((((4 == 5) ; (!,fail)))) ;
(write(a))
)).
This query fails with a "no".
Correct behavior.
Is the cut(!) and fail scope limited
inside the once/1 call?
You said it :-) once/1 is a built-in predicate (it is not a control
construct). So it is not transparent to cut (i.e. the scope of cut
is the Goal of once/1).
Daniel
Dave
PS: Everything seems to work fine in
gprolog 1.4.1 but in the debugger I experienced segmentation
violations debugging after consulting a
very large prolog file bug exact same thing works fine in
gprolog 1.3.1. Have other people
experienced this too. I do not have a small example.
PS: I would be interested in getting this large file. Can I get by
ftp (or other) a zipped version of this file ?
(you can write to me directly: [email protected])
--
Ce message a été vérifié par
MailScanner
pour des virus ou des polluriels et rien de
suspect n'a été trouvé.
|
_______________________________________________
Bug-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-prolog