統計解析R たぶんpart3くらい (587レス)
統計解析R たぶんpart3くらい http://mevius.5ch.net/test/read.cgi/tech/1340339592/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
480: デフォルトの名無しさん [] 2023/03/04(土) 20:31:08.80 ID:0X36s/jF ## Rにおけるオブジェクト指向への取り組み 趣旨は新規フレームワークR7の紹介だが、既存のフレームワークの俯瞰図 としても使いやすいと思う。 * [What is R7? A New OOP System for R](https://www.jumpingrivers.com/blog/r7-oop-object-oriented-programming-r/) ## オブジェクト指向とは? 次の記事を取り上げてみる。 * [Object Oriented Programming Features of Rust](https://doc.rust-lang.org/book/ch17-00-oop.html) 内容については賛否両論だと思う。しかし、箇条書きできるということが、 オブジェクト指向が単一の概念でないことを示しているように思う。 ## S3はオブジェクト指向か? 比較のために、S3のキーワード`default`を使わないで書く。 ``` {r a_3770, dependson = ""} none = with (new.env (), { to_string = \(x, ...) UseMethod ("to_string", x) as_string = \(x, ...) UseMethod ("as_string", x) to_string.Base = \(x, ...) as_string (x, ...) as_string.Base = \(x, ...) to_string (x, ...) to_string.Derived = \(x, ...) paste0 ("hello ", class (x)) as_string.Derived = as_string.Base structure (identity, class = "Derived") |> as_string () |> print () }); ``` `Base`クラスは、関数`to_string`か関数`as_string`の"どちらか1つを実装せえ"と言っている。 http://mevius.5ch.net/test/read.cgi/tech/1340339592/480
481: デフォルトの名無しさん [] 2023/03/04(土) 20:34:04.91 ID:0X36s/jF 似た内容をPythonで書いてみる。 ``` {python a_8560, dependson = ""} class Base: def to_string (self): return self.as_string () def as_string (self): return self.to_string () class Derived (Base): def to_string (self): return "hello " + type (self).__name__ Derived ().as_string () ``` Haskellで書いてみる。 ``` haskell class Base_ a where to_string :: a -> String to_string = as_string as_string :: a -> String as_string = to_string instance Base_ () where to_string :: () -> String to_string = ("hello " ++) . show as_string () ``` <pre> "hello ()" </pre> http://mevius.5ch.net/test/read.cgi/tech/1340339592/481
482: デフォルトの名無しさん [] 2023/03/04(土) 20:37:50.63 ID:0X36s/jF ワンセットの関数群をインターフェースと書く。 1. Pythonのクラスでは、 * 構造体の定義とインターフェースの定義と実装が同時に行われる。 1. HaskellのクラスやRのS3では、 * 構造体とインターフェースは別々に定義される。 * インターフェースの実装は既存の"構造体"に対して行われる。 HaskellやRの"構造体"には、通常の構造体に加えて、関数も含まれる。 構造体とインターフェースが別々に定義される点で、RのS3はHaskellのクラスに 近いように思う。 おしまい http://mevius.5ch.net/test/read.cgi/tech/1340339592/482
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.468s*