=../2
(also called univ/2) is capable of constructing a term from a list, where the first element of the list will be the functor of the newly created term, and the other elements of the list will be its arguments. It can't create multiple terms at once. For this purpose, it has to be used as many times as the number of terms you want to create.
In your case, it seems you want three terms: f(x)
, g(x)
, and the conjunction between those two. The following goal, issued at the prompt of any Prolog top-level implementation, should work fine (here I'm using GNU Prolog because results are showed more clearly than e.g. SWI):
| ?- Fx =.. [f, x], Gx =.. [g, x], H =.. [',', Fx, Gx].
Fx = f(x)
Gx = g(x)
H = f(x),g(x)
Of course, you can define your own predicate to encapsulate this functionality if you need to reuse it in multiple places.
As far as explanations of =../2
are concerned, I learned Prolog in class and on books, so I'm not that knowledgeable when it comes to online resources. However, there is another StackOverflow question that may be of help to you.