Findall displaying only 9 resulting elements

Hello !

I’m using SWI-Prolog version 6.2.2
I want the code to display all solutions to a goal, so I’m using findall/3.
It almost works but what I’m getting is:

Results = [result1, result2, result3, result4, result5, result6, result7, result8, result9|...].

How can I make it so it does not push some results in the tail of the answer, I just want ALL my result list, not the 9 first elements.

My code looks like this:

things(thing1,[property1,property2,property3,property4]).
things(thing2,[property1,property3,property5,]).
% etc. defining around 50 "things"

seekProperty(P,T) :- things(T,L), member(I, L).

seek(P,T) :- findall(T, seekProperty(P,T), Things).

Execution :

seek(property3,Things).

Thank you !

See: Help: I want the whole answer

It is unfortunate that it requires a user input.

I will try to change the default behavior, bur the location of the init.pl file (as indicated in https://www.swi-prolog.org/FAQ/PlInitialisation.html) to change the default settings is not correct.
Actually the only init.pl associated with Prolog on my whole machine is in C:\Program Files (x86)\swipl\customize
Adding the set_prolog_flag/2 directive in this file as adviced in your link does not work (still have 9 results then a tail).

I never change the setting and always use the ;true option so I will check to see if I can reproduce the problem. Another post seems to be hinting at the same.

I found a way :
I edited the init.pl found in Programs/swipl/customize/ and saved it in \AppData\Roaming\SWI-Prolog
( run ?- absolute_file_name(app_config(.), Dir, [file_type(directory)]). to have the proper directory on your environment).

This way it works !

1 Like