PlQuery Constructor (name, termV)

SWI-Prolog SbsSW.SwiPlCs

Swi-cs-pl - A CSharp class library to connect .NET languages with SWI-Prolog PlQuery Constructor (name, termV)
SwiPlCs interfaceSbsSW.SwiPlCsPlQueryPlQuery(String, PlTermV)
Create a query where name defines the name of the predicate and av the argument vector. The arity is deduced from av. The predicate is located in the Prolog module user.
Declaration Syntax
C# Visual Basic Visual C++
public PlQuery(
	string name,
	PlTermV termV
)
Public Sub New ( _
	name As String, _
	termV As PlTermV _
)
public:
PlQuery(
	String^ name, 
	PlTermV termV
)
Parameters
name (String)
the name of the predicate
termV (PlTermV)
the argument vector containing the parameters
Examples

This sample shows a query with a compound term as an argument.

CopyC#
public void PlCallQueryCompound_termv()
{
    string[] mm = { "aa1", "aa2", "aa3" };
    build_pred();   // create: test(comp(X,Y)) :- member(Z,[1,2,3]), atomic_list_concat([X,Z],Y).
    PlTerm var1 = PlTerm.PlVar();
    PlTerm comp = PlTerm.PlCompound("comp", new PlTerm("aa"), var1);
    using (PlQuery q = new PlQuery("test", new PlTermV(comp)))
    {
        int i = 0;
        foreach (PlTermV s in q.Solutions)
        {
            Assert.AreEqual(mm[i++].ToString(), var1.ToString());
            Assert.AreEqual(comp.ToString(), s[0].ToString());
        }
    }
}

Assembly: SwiPlCs (Module: SwiPlCs) Version: 1.1.60301.0 (1.1.60301.0)