在Harold Abelson的"计算机程序的结构和解释"中,使用Lisp编程语言,其中一个练习要求您评估以下代码:
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
Run Code Online (Sandbox Code Playgroud)
当然,一种方法R是:
APlusAbsB <- function(a, b){
if(b > 0) a + b else a - b
}
Run Code Online (Sandbox Code Playgroud)
然后我重复as和bs.
我的问题是:是否R允许运算符为复合表达式(例如if (> b 0) + -))?例如,有没有办法做类似的事情
APlusAbsB <- function(a, b){ ## this doesn't work
if(b > 0) "+" else "-" (a, b) ## gives "+" or "-"
}
Run Code Online (Sandbox Code Playgroud)