RがS式に着替えたら


Rの教科書をパラパラとめくると、そのほとんどは、手続型っぽいシンタックスで書かれています。なので、Rを手続型に属する言語だと誤解されている節がありますが、それは表の顔。
裏の顔、別に裏でなくてもいいですが、むしろもろ表ですが、それはSchemeをご先祖様にもつ関数型言語という顔です。
R:過去と未来の歴史 – RjpWiki
いやいや、Lisp族の影響を受けている言語だったら、それはわんさかあります。ただ、Rの変態なところがシンタックスでもその名残を濃く残しているところにあります。
というわけで、今回は一般に知られているRの構文をS式っぽく書き直す、という誰も得しないようなことをやってみます。

Rでふつーに書いてみる

まずは、教科書の始めのほうに書いてあるようなものを書いてみます。

RでS式っぽく書いてみる

先ほどの例をS式っぽく書いてみます。

どうだったでしょうか。言語オブジェクトを操作するeval,call,quoteを除いてみると、S式っぽいんではないでしょうか。少なくとも,同じ言語にはとても見えません。
これで、Lisperも安心して(?)Rが書けますね。