Re: Counting the solutions....

"Michał Bieliński" <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
gowtham wrote:
> Hi All,
> Bear with this newbie. I come from procedural programming and started to
> learn prolog a week ago. Though, I really appreciate its amazing capacity,

I had a look at your code and tried to execute it without examining it
closely. It complained about undefined flag/3 predicate in count/2. After
commenting it out it ran fine.

> My quaries are getting the solutions but, i have problem in counting the
> solutions.

> count_pcg0(X) :-

Writes _29 here.

> count_pcg(X) :-

Writes _29_29 here. My impression is you are not using GNU Prolog and we
get wildly different results. I suggest another solution.

findall/3 is very useful for collecting solutions.

findall(GOAL, prop(GOAL, is_coding, 'YES'), LIST) will return a LIST of
atoms satisfying query given as second argument to this findall
invocation.

Use this in count_pcg0(X) predicate to simplify it. You'll need to count
elements in list but this allows you to remove duplicates if you wish.

count_pcg(X) is only a little bit trickier. A possible solution is to
combine all conditions into a single predicate.

cond_pcg(X) :-
node(X),
prop(X, is_coding, 'YES'),
prop(X, located_on, 'Lmjchr1').

-- 
Michał Bieliński
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.