Expressions are used to define filter logic for passing to a Dataset
Scanner.
Expression$scalar(x) constructs an Expression which always evaluates to
the provided scalar (length-1) R value.
Expression$field_ref(name) is used to construct an Expression which
evaluates to the named column in the Dataset against which it is evaluated.
Expression$create(function_name, ..., options) builds a function-call
Expression containing one or more Expressions. Anything in ... that
is not already an expression will be wrapped in Expression$scalar().
Expression$op(FUN, ...) is for logical and arithmetic operators. Scalar
inputs in ... will be attempted to be cast to the common type of the
Expressions in the call so that the types of the columns in the Dataset
are preserved and not unnecessarily upcast, which may be expensive.