R言語を見てみた。(R 入門)

今日の本題は、R言語です。


プログラミング言語は、自然言語よりシンプルだし、一つの言語を覚えるとほかで融通が利くといわれている。実際そうだと思う。
これまでは、RubyとかJavaしか使ったことがなかった。
日曜プログラマーでしたので。


Rというのは聞いていたが、統計でもやらない限り、必要ないだろうと考えて触れてこなかった。
しかし、大学院にも入るので、仕事で使える言語というものも、合間に勉強しておこうと思うようになった。


R言語 自分的入門」
(※ 私はプログラミングに詳しいわけではありません。ここに書いてあるのは、個人的理解です。)
まずは、ネットの色んなサイトで、なんとなく概観をつかんだ後は、公式マニュアルを見る。
そして、公式のマニュアルの日本語訳も発見。


http://cran.r-project.org/doc/contrib/manuals-jp/R-lang.jp.v110.pdf
言語習得に、公式マニュアルは絶対必要と思う。あいまいなことは書いてないから。


僕が新しいプログラミング言語を見るときは、まず、
1. 言語のおおまかな分類 (オブジェクト指向、関数型、かどうかなど)
2. 変数の種類
3. 変数に型があるか
4. (オブジェクト指向なら)基本のクラスは何があるか?
5. 関数とか、(オブジェクト指向なら)クラスの定義の方法


あたりをみることにしている。なんとなく、これくらいで分かった気になれる。
Rの場合は、


1. 関数プログラミング言語 (に近いらしい)
2. シンボルや、変数を通じて、オブジェクトにアクセスする。
3. なさそう
4. The R 固有の関数typeof はあるR オブジェクトの型type を返す。
次の表はtypeof が返す全ての可能な値とその意味を示す。
NULL 空
symbol 変数名
pairlist 対リストオブジェクト
closure 関数
environment 環境
promise 遅延評価を実現するために使われるオブジェクト
language R の言語構成
special その引き数を評価しない組込み関数
builtin その引き数を評価する組込み関数
logical 論理値を含むベクトル
integer 整数値を含むベクトル
double 実数値を含むベクトル
complex 複素数値を含むベクトル
character 文字値を含むベクトル
... 特殊な可変長引き数***
any 全ての型にマッチする特殊な型***
expression 表現式オブジェクト
list リスト
externalptr 外部ポインターオブジェクト
ユーザーが‘***’ でマークされた項目を、すくなくとも苦労せずに、理用できるとは思えない。
5. また今度調べる。


なんとなく、ベクトルと、シンボルという、RubyJavaでは聞きなれないところに、統計やバイオインフォマティクスで使いやすい理由があるのか。
あと、グラフも書けるみたいで、面白そう。


これまで、関数言語は触ったことないので、いい勉強になりそう。ちょっとしっかりがんばろう。