query {rolog} | R Documentation |
Create a query
Description
Create a query
Usage
query(
query = call("member", expression(X), list(quote(a), "b", 3L, 4, TRUE, expression(Y))),
options = NULL,
env = globalenv()
)
Arguments
query |
an R call. The R call consists of symbols, integers and real numbers, character strings, boolean values, expressions, lists, and other calls. Vectors of booleans, integers, floating point numbers, and strings with length N > 1 are translated to prolog compounds !/N, %/N, #/N and $$/N, respectively. The names can be modified with the options below. |
options |
This is a list of options controlling translation from and to prolog.
|
env |
The R environment in which the query is run (default: globalenv()). This is mostly relevant for r_eval/2. |
Details
SWI-Prolog does not allow multiple open queries. If another query is open, it it is closed and a warning is shown.
Value
If the creation of the query succeeds, TRUE
.
See Also
once()
for a query that is submitted only a single time.
findall()
for a query that is submitted until it fails.
Examples
query(call("member", expression(X), list(quote(a), "b", 3L, 4, TRUE, expression(Y))))
submit() # X = a
submit() # X = "b"
clear()
query(call("member", expression(X), list(quote(a), "b", 3L, 4, TRUE, expression(Y),
NA, NaN, Inf, NULL, function(x) {y <- sin(x); y^2})))
submit() # X = a
submit() # X = "b"
submit() # X = 3L
submit() # X = 4.0
submit() # X = TRUE
submit() # X = expression(Y) or Y = expression(X)
submit() # X = NA
submit() # X = NaN
submit() # X = Inf
submit() # X = NULL
submit() # X = function(x) {y <- sin(x); y^2}))
submit() # FALSE (no more results)
submit() # warning that no query is open
query(call("member", expression(X), list(quote(a), "b", 3L, 4)))
query(call("member", expression(X), list(TRUE, expression(Y)))) # warning that another query is open
clear()