R の概観
2021-05-07
Expression について
司馬 博文
5/07/2021
6/05/2024
オブジェクト志向言語ではコード自体もオブジェクトであり,R では call, expression, name の3つのモードから構成される.1
1つのクラスからなるわけではなく,call, symbol, constant, pairlist の4つの型からなる.2
pairlistR の内部で用いられるデータ型であり,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 関数