[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 12/27 16:26 / Filesize : 104 KB / Number-of Response : 328
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向ってクソじゃねぇかよPart3



162 名前:デフォルトの名無しさん [2018/12/05(水) 16:30:58.93 ID:ifntcr/4.net]
>>153
OOPも元は宣言的を目指してるし、smalltalkや最近の関数型機能も取り込んだOOPな言語もある程度宣言的なんだよね。
じゃあ宣言的ってなんぞやってなるんだけど、HaskellもPrologも結局ループを再帰とかmapとかfoldlとかに置き換えて、if/switch文がガードやパターンマッチになっただけって言う。
(実際、Haskellのパターンマッチはcase(C言語系のswitch)の構文糖衣)

OOPもそう言う制御構造をメソッドに押し込んじゃえって感じだけど(少なくともmainとかの中身は宣言的に書きやすい)、メソッドの中身は相変わらず手続き的と言う。
(この辺、最近の言語だとクロージャ(ラムダ式含む)やらLinqやらで比較的、制御構造を隠蔽し易くなってると思う。あとはif/switch文だけだ。がんばれ!)

でも逆にそう言う目で見ると、関数型言語も手続き型言語も大差無い。
(関数型言語も事実上の再代入は可能だし)

強いて言えば関数型言語の方が関数に分割し易かったり、ガードやパターンマッチで分岐のネストが減る分、見やすいってだけ。
(どっちかと言えばアルゴリズムと相性が良いリストが基本か、効率重視の配列が基本かの違いの方が大きいので、リスト使う限り文法以上の違いは感じない)

GoとRust入門サイト読んでみたけど、どっちもOOPじゃ無いんだね。

Go=手続き型言語に最近トレンドの機能入れました。(ただしOOPは除く)
Rust=手続き型言語でも関数プログラミングな書き方出来ますが、関数型言語は言語レベルでサポートしてますー>なら、手続き型言語でも言語レベルで関数プログラミングをサポートしようじゃ無いか。

Goは依存関係に苦しんでた結果生まれたとか(dllとか基本的に作らない方針)、OOPへの問題提起な印象。
RustはOCamlとかSMLで良くね?と思ったけど、関数型言語のままだと普及しないから、手続き型言語に寄せました的な印象。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<104KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef