NAME

Rserve::REXP::Expression - an R expression vector

SYNOPSIS

use Rserve::REXP::Expression

# Representation of the R call C<expresson(1 + 2))>:
my $vec = Rserve::REXP::Expression->new([
    Rserve::REXP::Language->new([
        Rserve::REXP::Symbol->new('+'),
        Rserve::REXP::Double->new([1]),
        Rserve::REXP::Double->new([2])
    ])
]);
print $vec->elements;

DESCRIPTION

An object of this class represents an R expression vectors (EXPRSXP). These objects represent a list of calls, symbols, etc., for example as returned by calling R function parse or expression.

METHODS

Rserve::REXP:Expression inherits from Rserve::REXP::List, with no added restrictions on the value of its elements.

sexptype

SEXPTYPE of expressions is EXPRSXP.

to_perl

Perl value of the expression vector is an array reference to the Perl values of its elements. (That is, it's equivalent to map {$_->to_perl}, $vec->elements.) Unlike List, elements that are atomic vectors of length 1 are still represented as a one-element array reference, rather than scalar values.