@ g-grothendieck ответ на этот вопрос вдохновил меня на игру с некоторыми функциями назначения, такими как ==<-
или ><-
.
См. Следующее:
`><-` <- function(e1,e2,value) replace(e1, e1 > e2, value)
x <- c(5,15)
x > 10 <- 42
x
# [1] 5 42
Я также могу определить его для <
:
`<<-` <- function(e1, e2, value) replace(e1, e1 < e2, value)
x <- c(5,15)
x < 10 <- 42
x
# [1] 42 15
Но проблема в том, что теперь оператор <<-
переопределен, и он больше не работает:
x <<- "hello"
Ошибка замены (e1, которая (e1
Интересно x < y <- z
вызывает <<-
дажекогда он не был перезаписан.
rm(`<<-`)
x < 10 <- 42
Ошибка в x <10 <- 42: неверное количество аргументов для "<< -" </p>
Будет лиспособ сохранить исходное поведение <<-
при определении этого пользовательского поведения?