(index ("NA" 0) ("R-missing" 125) ("R-null" 330) ("R" 494) ("R*" 1048))
(def (sig (constant "NA → (make-NA)" (id NA))) (p "NA corresponds to R's NA.") (highlight scheme "(define NA (make-NA))"))
(def (sig (constant "R-missing → (foreign-value R_MissingArg SEXP)" (id R-missing))) (p "R-constant for missing arguments") (highlight scheme "(define R-missing (foreign-value \"R_MissingArg\" SEXP))"))
(def (sig (constant "R-null → (foreign-value R_NilValue SEXP)" (id R-null))) (p "NULL") (highlight scheme "(define R-null (foreign-value \"R_NilValue\" SEXP))"))
(def (sig (syntax "(R expression ...) → R-object" (id R))) (p "Evaluate R-expressions, but do not try to translate the final result into a native Scheme object; this is useful when you don't need to manipulate the object directly in Scheme.") (dl (dt (tt "expression")) (dd "An expression to evaluate") (dt (tt "...")) (dd "More expressions")) (highlight scheme "(define-syntax\n  R\n  (lambda (expression rename compare)\n    `(begin\n       ,@(map (lambda (expression) `(R-eval ,(list 'quasiquote expression)))\n              (cdr expression)))))"))
(def (sig (syntax "(R* expression ...) → Scheme-object" (id R*))) (p "Evaluate R-expressions and translate the final result into a Scheme object, where possible (cf. " (int-link "#overview" "overview") "); use this (as opposed to " (tt "R") ") when you need to manipulate the value in Scheme.") (dl (dt (tt "expression")) (dd "An expression to evaluate") (dt (tt "...")) (dd "More expressions")) (highlight scheme "(define-syntax\n  R*\n  (lambda (expression rename compare) `(R->scheme (R ,@(cdr expression)))))"))
