aboutsummaryrefslogtreecommitdiff
path: root/r/env.r
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-11-03 20:02:09 -0600
committerJoel Martin <github@martintribe.org>2015-01-09 16:16:43 -0600
commitc30efef469e22c8ba345a72c058c28362e57b746 (patch)
treee2b9a4252c7771dd8f4554c4b248d370b66e0ae3 /r/env.r
parent01feedfe22a381c6b6ca79bdf0db798aa08c4104 (diff)
downloadmal-c30efef469e22c8ba345a72c058c28362e57b746.tar.gz
mal-c30efef469e22c8ba345a72c058c28362e57b746.zip
R: add step6_file and step7_quote
Change symbols to be special class.
Diffstat (limited to 'r/env.r')
-rw-r--r--r/env.r7
1 files changed, 2 insertions, 5 deletions
diff --git a/r/env.r b/r/env.r
index b688b4d..6924881 100644
--- a/r/env.r
+++ b/r/env.r
@@ -7,9 +7,9 @@ new.Env <- function(outer=emptyenv(), binds=list(), exprs=list()) {
if (length(binds) > 0) {
for(i in seq(length(binds))) {
- b <- as.character(binds[[i]])
+ b <- binds[[i]]
if (b == "&") {
- e[[as.character(binds[[i+1]])]] <-
+ e[[binds[[i+1]]]] <-
slice(exprs, i, length(exprs))
break
} else {
@@ -21,7 +21,6 @@ new.Env <- function(outer=emptyenv(), binds=list(), exprs=list()) {
}
Env.find <- function(e, key) {
- key <- as.character(key)
if (exists(key, envir=e, inherits=FALSE)) {
e
} else if (!identical(parent.env(e), emptyenv())) {
@@ -32,13 +31,11 @@ Env.find <- function(e, key) {
}
Env.set <- function(e, key, val) {
- key <- as.character(key)
e[[key]] <- val
invisible(val)
}
Env.get <- function(e, key) {
- key <- as.character(key)
e <- Env.find(e, key)
if (.nil_q(e)) throw(concat("'", key, "' not found"))
e[[key]]