R の概観
2021-05-07
Expression について
司馬 博文
5/07/2021
6/05/2024
オブジェクト志向言語ではコード自体もオブジェクトであり,R では call
, expression
, name
の3つのモードから構成される.1
1つのクラスからなるわけではなく,call
, symbol
, constant
, pairlist
の4つの型からなる.2
pairlist
R の内部で用いられるデータ型であり,Lisp の dotted-pair list
に似ている.
pairlist
オブジェクトは3つの slot をもち,CAR
, CDR
, TAG
と呼ばれる. * CAR
とCDR
は IBM の 60 年代のコンピュータのaddress
,decrement
レジスタに由来し,リストの head と tail を指す. * TAG
は文字列オブジェクトである.
pairlist
の R 内での機能はlist
と全く同じで,indexing syntax [[]]
も同一である.
次のような操作ができる3
rlang::expr
がコンストラクタである:
typeof | class | mode |
---|---|---|
language |
<- |
call |
expression
オブジェクトは base::eval()
で評価できる:
expression
には list のようにアクセス可能である:4
enexpr
関数