Question

How to convert this

fact( [a,b,c], [d,e,f], ..., [p, q, r] )

to a list of these elements?

Result:

[[a,b,c], [d,e,f], ..., [p, q, r]]
Was it helpful?

Solution

list_fact_args(Fact,List) :- Fact =.. [fact|List].

=.. is a handy predicate that transforms the predicate on the left to a list with predicate name as the first member and its arguments as the latter members. Or a list on a right to the predicate on the left. Here fact denotes that it lists only the predicates named 'fact'.

OTHER TIPS

Get your Prolog Manual or textbook and look up =.. / 2.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top