Query

Query( lambda )
Query( lambda )
Query( lambda )
Query( lambda )
query( lambda )
Query( lambda )

Description

The Query function wraps the provided Lambda function, preventing immediate execution, and making the function available for use in index bindings, user-defined functions, and ABAC predicates.

For example, when creating a named function with CreateFunction, Query defers execution of the Lambda function until the Call function is called.

While you can use a Query in a Let binding, it is not possible to call the bound function. You also cannot use a Query instead of a lambda function, such as with Map or Reduce.

Two functions are considered equal if their syntax is identical. For example:

Equals(Query(Lambda('a', 5)), Query(Lambda('a', 5)))
true

Parameters

Argument Type Definition and Requirements

lambda

A Lambda function.

The Lambda function to wrap.

Returns

The wrapped query.

Examples

The following query returns the provided Lambda function wrapped in the Query wrapper:

Value result = await client.Query(
  Query(Lambda("X", Var("X")))
);

IResult<Value> data = result.To<Value>();
data.Match(
  Success: value => Console.WriteLine($"{value}"),
  Failure: error => Console.WriteLine($"Query failed:\n{error}")
);
QueryV(System.Collections.Generic.Dictionary`2[System.String,FaunaDB.Query.Expr])
result, err := client.Query(
  f.Query(f.Lambda("X", f.Var("X"))))

if (err != nil) {
  fmt.Println(err)
} else {
  fmt.Println(result)
}
{[123 34 108 97 109 98 100 97 34 58 34 88 34 44 34 101 120 112 114 34 58 123 34 118 97 114 34 58 34 88 34 125 125]}
System.out.println(
    client.query(
        Query(Lambda("X", Var("X")))
    ).get());
QueryV({lambda=X, expr={var=X}})
client.query(
  q.Query(q.Lambda('X', q.Var('X')))
)
.then((ret) => console.log(ret))
Query(Lambda("X", Var("X")))
print(client.query(
  q.query(q.lambda_("X", q.var("X")))
))
Query({'lambda': 'X', 'expr': {'var': 'X'}})
println(Await.result(
  client.query(
    Query(Lambda("X", Var("X")))
  ),
  5.seconds
))
{lambda: "X", expr: {var: "X"}}

Was this article helpful?

We're sorry to hear that.
Tell us how we can improve!
Visit Fauna's Discourse forums or email docs@fauna.com

Thank you for your feedback!