.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Statistics::R::REXP::Closure 3pm" .TH Statistics::R::REXP::Closure 3pm "2022-02-10" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Statistics::R::REXP::Closure \- an R closure .SH "VERSION" .IX Header "VERSION" version 1.0002 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Statistics::R::REXP::Closure \& \& my $clos = Statistics::R::REXP::Closure\->new(body => { \& Statistics::R::REXP::Language\->new([ \& Statistics::R::REXP::Symbol\->new(\*(Aqmean\*(Aq), \& Statistics::R::REXP::Double\->new([1, 2, 3]) \& ]) \& }); \& print $env\->elements; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" An object of this class represents an R closure (\f(CW\*(C`ENVSXP\*(C'\fR). Closures in R are constructed with \f(CW\*(C`function\*(C'\fR and consist of a arguments(\fIargs\fR) \*(-- optionally with default values (\fIdefaults\fR); a \&\fIbody\fR; and an \fIenvironment\fR, a pointer to an enclosing evaluation frame when the closure is used. .PP These objects represent calls (such as model formulae), with first element a reference to the function being called, and the remainder the actual arguments of the call. Names of arguments, if given, are recorded in the 'names' attribute (itself as Statistics::R::REXP::Character vector), with unnamed arguments having name \f(CW\*(Aq\*(Aq\fR. If no arguments were named, the environment objects will not have a defined 'names' attribute. .PP You shouldn't create instances of this class, it exists mainly to handle deserialization of \f(CW\*(C`ENVSXP\*(C'\fRs by the \f(CW\*(C`IO\*(C'\fR classes. .SH "METHODS" .IX Header "METHODS" \&\f(CW\*(C`Statistics::R::REXP:Environment\*(C'\fR inherits from Statistics::R::REXP, with the added restriction that its first element has to be a Statistics::R::REXP::Symbol or another \&\f(CW\*(C`Environment\*(C'\fR instance. Trying to create a Closure instance that doesn't follow this restriction will raise an exception. .SS "\s-1ACCESSORS\s0" .IX Subsection "ACCESSORS" .IP "args" 4 .IX Item "args" An reference to the array of argument names. .IP "defaults" 4 .IX Item "defaults" Returns an array reference to default values of corresponding arguments, or \f(CW\*(C`undef\*(C'\fRs if the argument does not have a default. (If none of the arguments have defaults, this can be an empty array. .IP "body" 4 .IX Item "body" Returns the Statistics::R::REXP representing the body of the function. .IP "environment" 4 .IX Item "environment" Returns a reference to the enclosing evaluation frame, i.e., the environment within which the function is defined and looks up any free variables. This attribute is optional because some serialization mechanisms (notably Rserve's \s-1QAP\s0), do not save the closure's environment. .IP "sexptype" 4 .IX Item "sexptype" \&\s-1SEXPTYPE\s0 of closures is \f(CW\*(C`CLOSSXP\*(C'\fR. .IP "to_pl" 4 .IX Item "to_pl" Closures do not have a native Perl representation and trying to call this access will raise an exception. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" Classes in the \f(CW\*(C`REXP\*(C'\fR hierarchy are intended to be immutable. Please do not try to change their value or attributes. .PP There are no known bugs in this module. Please see Statistics::R::IO for bug reporting. .SH "SUPPORT" .IX Header "SUPPORT" See Statistics::R::IO for support and contact information. .SH "AUTHOR" .IX Header "AUTHOR" Davor Cubranic .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is Copyright (c) 2017 by University of British Columbia. .PP This is free software, licensed under: .PP .Vb 1 \& The GNU General Public License, Version 3, June 2007 .Ve