R (GNU S の R) のプログラミングパラダイムは何ですか?
私は、さまざまな概念パラダイムのプログラミング言語 (C++、Java、Prolog、およびその他のいくつかの言語でプログラミングされている) に精通していると思いますが、独自の小さな R スクリプトを既に作成していますが、R がどのパラダイムを表すことになっているのかわかりません。
Rは、オブジェクト指向プログラミングパラダイムと関数型プログラミングパラダイムの混合をサポートします。
機能面では:
だが
オブジェクト指向側:
3つの組み込みOOパラダイムがあります。S3とS4は不変であり、ジェネリック関数スタイルOOをサポートし、参照クラス(別名R5)は可変であり、より一般的なメッセージパッシングスタイルOOをサポートします。
S4は、OOスタイルのcommon lisp(CLOS)とdylanの影響を強く受けています。
他のタイプのOOを提供する寄稿パッケージも多数あります:proto
、、、。mutatr
R.oo
OOP
だが
ウィキペディアによると(強調を追加)、
R は、関数を使用した手続き型プログラミングと、汎用関数を使用したオブジェクト指向プログラミングをサポートしています。ジェネリック関数は、渡される引数の型によって異なる動作をします。つまり、汎用関数はオブジェクトの型を認識し、その型のオブジェクトに固有の関数 (メソッド) を選択 (ディスパッチ) します。たとえば、R には、単純な "print(objectname)" 構文で R 内のほぼすべてのタイプのオブジェクトを出力できる汎用の print() 関数があります。