2017年05月13日

Rについて

あるアイデアを思いつき、どの言語で作ろうかと考えていた。
私は今までにいろんな言語をかじってきたので、普段は細かいことはほとんど覚えてないが、ちょっと復習すればプログラムを作れるくらいの知識と理解はあるのである。私にとってプログラミングはDIYの楽しみの一つだ。
そして開発言語の選択はDIYにおける道具の選択と同様に重要な問題である。

言語は大体、C系統とlisp系統の関数型言語の2つのパラダイムに分けられると思う。prologもパラダイムの一つに入れられるのかもしれない。が、prologは使ったことがない。w
それにくわえてoopがある。ただしオブジェクト指向はパラダイムというわけではない。昨今の言語は、マルチパラダイム化しており、いろんな言語のいいとこ取りをしているわけだ。oop的なものは最近の言語では大体必須になっている。

で、今回はRを使おうと思った。Rは日本ではコマンドラインで使うフリーの多機能な統計処理プログラムとしてしか認識されていないことが多いが、実際は、立派な関数型言語であり、それに統計処理関係のライブラリーが沢山あるだけという把握のほうが正しい。要するにRは言語、それも関数型言語だ。
大体数学関係のソフトは関数型言語が使われてることが多い。matlab,mathematheca,maximaしかり。
だが、それらは独自言語を持つがその言語の解説書が少ないので、使い方がよくわからない。Rは最近、言語として注目されているようで、解説書が沢山あるのがメリットでもある。
私もRをプログラミング言語として使ったことはなかったので、オライリーのpdf本が役にたったという次第だ。

ちなみにR関係のpdf本は沢山ネット上にあるが、私がいいと思ったのは、Advanced-Rという本である。
lispのような関数型言語の経験があれば、R言語の学習はわりとスムーズにできるのではないかと思うが、javaとかC系統の言語しか使ったことがないと少ししんどいかもしれない。w
Rはlisp,schemeなどと同様にfor文やif文を原則として使わないのがコツである。一応用意されているが、それら制御構文を使うとめちゃくちゃ遅くなる。逆にそれらを使わないでヴェクトル処理だけで書くとC言語並のスピードで動く。
またパッケージライブラリも万の単位で存在する。そんなに沢山あると、どこにどんなのがあるのかさっぱりわからない。どこかで紹介されている良さそうな奴を試すしかない。w
posted by libertarian at 20:46| 東京 ☔| et cetera | このブログの読者になる | 更新情報をチェックする