возможно ли определить ваши собственные примитивы в R?(или вещи, которые выглядят, чувствуют и работают как примитивы)
Я говорю о новых версиях $
, [
, for(){}
и т. д.
Например, яможет потребоваться примитив £
, который работает аналогично $
, но он получает доступ к элементам из списка списков, подобных этому
list_of_lists<-lapply(1:10,function(x){list(a=1,b=2)})
list_of_lists£a
# return a list of all elements called `a` from list_of_lists
Ближайшее, что я получил к этому:
`%£%`<- function(x,y){
lapply(x,function(x){x[[y]]})
}
list_of_lists<-lapply(1:10,function(x){list(a=1,b=2)})
list_of_lists%£%"a"
# return a list of all elements called `a` from list_of_lists
Есть ли способ определить это так, чтобы он работал точно так же, как "настоящий" примитив?Я не заинтересован в этой конкретной проблеме, я хочу знать, как / если в принципе я могу определить свои собственные версии $
, [
, for(){}
и т.д.