objc, perl6, r: Add number?, fn?, macro?
[jackhill/mal.git] / r / types.r
index b9ecfe4..bfadaa1 100644 (file)
--- a/r/types.r
+++ b/r/types.r
@@ -104,6 +104,8 @@ new.keyword <- function(name) concat("\u029e", name)
          "<U+029E>" == substring(obj,1,8))
 }
 
+.number_q <- function(obj) "numeric" == class(obj) || "integer" == class(obj)
+
 # Functions
 
 malfunc <- function(eval, ast, env, params) {
@@ -128,6 +130,9 @@ fapply <- function(mf, args) {
     }
 }
 
+.fn_q <- function(obj) "function" == class(obj) || (.malfunc_q(obj) && !obj$ismacro)
+.macro_q <- function(obj) .malfunc_q(obj) && obj$ismacro
+
 # Lists
 new.list <- function(...) new.listl(list(...))
 new.listl <- function(lst) { class(lst) <- "List"; lst }