日本語版WikipediaでR言語のことを調べると、「影響を受けた言語」という部分にS言語とSchemeが書かれています*1。S言語から大きく影響を受けたことはもちろんのことですが、なぜSchemeなのかと常々思っていました。プログラムを見てもSchemeのようなLISP族よりもC言語などのAlgol族に似ています。 今日、関数の書き方について本を読んでいると、「R言語は基本的に関数型言語である」という記述がありました。3+5という演算も、正式には "+"(3, 5) のように書くのだそうです。LISP族での (+ 3 5) と同様の前置記法だったのでした。シンタックス・シュガーとして中置記法が使えるようになっているとのこと。でも、それだけではAlgol系の add(3, 5) という関数呼び出しにそっくり、と言われてもしょうがないです。 遅延評価がなされるのもHaskellなどの関数型言