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 BasicVisual C++F#
public PlQuery(
	string name,
	PlTermV termV
)
Public Sub New ( 
	name As String,
	termV As PlTermV
)
public:
PlQuery(
	String^ name, 
	PlTermV termV
)
new : 
        name : string * 
        termV : PlTermV -> PlQuery
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.

 Copy imageCopy
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.dll) Version: 1.1.60601.0 (1.1.60601.0)