カプセル化は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/07/29(水) 17:17:58.13ID:u638n5uE
■危険性

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。

大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。

ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
2020/08/27(木) 00:29:41.97ID:Av3pnrM3
>>589
>心臓も肝臓もその詳細を知らず命令せずとも

人間の体のように個々のオブジェクトの有機的な相互作用によってシステム全体が構築されている場合
ある入力(食べ物/薬/ストレス/運動など)に対してどういう出力が得られるか
どういう副作用が発生しうるかを把握するのが困難

オブジェクト指向で作られたシステムも同じで
オブジェクト間にどういう相互作用があって、どういう風に副作用が連鎖していくかがわかりにくくなりがち
そうならないようにする対策の一つとして関数型の考え方が取り入れられてる
2020/08/27(木) 01:22:50.36ID:aggnfjOi
>>591
多重継承はついつい使っちゃうもんじゃないですねぇ
最終手段として使えれば便利とは思うけど
いつ使うんですかそんなもの
あなた本当に使ってますか?
てきとーなこといってオブジェクト指向ディスってるようにしか見えません
594デフォルトの名無しさん
垢版 |
2020/08/27(木) 01:31:43.23ID:JwVMaeMo
型の多重継承ならJavaでもよく使うけど
2020/08/27(木) 02:11:04.59ID:hkH5l7An
例えば動物クラスを継承して、犬クラスを作るなら自然だけど
動物クラスを継承した猫クラスがあるとして、ペットショップクラスを犬クラスと猫クラスの多重継承で作れないの?というのが初心者
極端すぎるけどこの場合はペットショップクラス内に動物クラスのインスタンスを管理するように作るべきだと思う
2020/08/27(木) 03:26:47.88ID:k1UmMy2p
>>595
自然かどうかはドメイン次第
そもそもペットショップクラスが必要なアプリってどういうものを想定したの?
597デフォルトの名無しさん
垢版 |
2020/08/27(木) 03:36:47.97ID:0TX63Eqy
ライオンクラスを頂点に、底辺は羊では。
2020/08/27(木) 04:29:11.06ID:qjXIX307
動物とか架空の例ばかりで、
実際に多重継承を使った実例をいわないのが
お前使ってないでしょっていう理由なんだわw
2020/08/27(木) 04:29:54.37ID:qjXIX307
あれだな。多重継承をディスるためにわざわざ多重継承が
使えそうな「例」を持ち出してる感100%だ
2020/08/27(木) 10:26:32.28ID:wrfFiWTH
そのクラスに属するメソッドをいい意味でも悪い意味でも結合させてしまうわけで
馬鹿は使うなってことになるわけだよ。
601デフォルトの名無しさん
垢版 |
2020/08/27(木) 11:48:30.05ID:s9fS5Msc
バカが作ると、とりあえず動くかもしれないけど
動作効率や保守性悪くなりがち
となるのは言語・パラダイムを問わず起こり得ること
2020/08/27(木) 11:50:15.78ID:Q9F08mvx
そう。「バカが使うと〜」と言い出すと何にでも当てはまるので
「人」と「技術」の話は分けて考えろといってる
603デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:13:20.64ID:esPfZquD
本来の意味での多重継承は現在では使われて無い
メソッド集や関数集を本体にドッキングさせたいときに使ってる
Javaに実装の書けるインタフェイスが出来たのもその為
Rubyのmix-inはそれ

つまり、ただの構造体にどうやって関数を足すかが、C++での現在の多重継承
604デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:16:36.33ID:XNd4fe+/
>>603
>本来の意味での多重継承は現在では使われて無い

随意筋  不随意筋
  ↖   ↗
   チンポ
605デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:23:27.55ID:R7AbwnBd
>>586
結局はどっちも宣言的プログラミングをする為の手段と言う認識。
手続き型言語のままで宣言的プログラミングをしようとしてオブジェクト指向プログラミングが出来たんじゃないかな。

でも、関数やメソッドにするべき処理は無数(無限)にあるので全ての処理をメソッド呼び出しやメソッドチェーンで記述する事は不可能。
結果としてどんなにクラスやメソッドが増えても全てを宣言的に書けず、どこかに必ず手続き的な記述が必要。

関数型言語は基本的な記述からして宣言的なので全部を宣言的に書ける。
ただ、状態を持たないと言うことはなんでも一から計算するので手続き型言語より遅い処理がある。
(例えば文字列の長さはオブジェクト指向プログラミングでは文字列オブジェクトそのものが生成された時点で文字数を内部に持っているが、関数型言語は必ず数える処理が入る)
2020/08/27(木) 12:27:06.54ID:9DS3XVCn
>>605
バカかよ
win32apiだってウィンドウハンドル渡してるだろ
607デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:40:23.45ID:R7AbwnBd
>>606

GUIは副産物であって目的じゃないよ?
608デフォルトの名無しさん
垢版 |
2020/08/27(木) 13:11:06.08ID:s9fS5Msc
>>606
バカはお前だって何度も言ってるだろ
2020/08/27(木) 13:15:44.72ID:9DS3XVCn
状態を持たないから全部1から計算とかプログラマやめろってレベルじゃねーぞチンパン
2020/08/27(木) 13:40:18.77ID:wrfFiWTH
>>602
人と技術は結びついてるんだから仕方ないだろ。
気にしないでいいなら変数名なんて全部1最小文字数でよいし、全部グローバルにしても
人が克服すりゃいいって話になる。
2020/08/27(木) 13:42:21.22ID:Q9F08mvx
> 人と技術は結びついてるんだから仕方ないだろ。

明確にすればいいだけ

つまり、技術的には○○の方が優れているが
うちの人材は技術力が低いので優れた技術を使えない
と認めた上で、○○を使わないっていうのはいいんだよ


〇〇は技術的にだめという嘘をつかなければいい
技術力が低いと認めればいいだけ
2020/08/27(木) 13:44:15.13ID:Q9F08mvx


× ローカル変数?ありゃだめだ?意味がわからない
グローバル変数のほうがいい

技術のせいにしてるからNG


○ ローカル変数のほうが良いようだが俺には使いこなせない。
俺の技術力が低いからグローバル変数を使っている。

人の問題だと認めてるからOK
2020/08/27(木) 14:40:38.75ID:qx1+2YSb
チンポ挿入するの大好き
614デフォルトの名無しさん
垢版 |
2020/08/27(木) 15:27:15.58ID:iBh5BPF2
>>589
本人が知らないうちに膵臓ガンが出来てましたというか自覚症状が無いのも、オブジェクトカプセルだから。
615デフォルトの名無しさん
垢版 |
2020/08/27(木) 15:38:46.33ID:/TJ+6+BI
>>604
多重継承がなぜ必要かというと、オブジェクトの上位概念は時と場合によぅて変わる時があるからだ。
例えばオシッコのチンポは随意筋で、射精のチンポは不随意筋である。
616デフォルトの名無しさん
垢版 |
2020/08/27(木) 15:57:08.86ID:s9fS5Msc
has-aの関係とis-aの関係で
継承かコンポジションか判断するのが基本だと思うけど
随意筋とか不随意筋はチンポからしたらhas-aの関係なのか
is-aの関係なのか どっちだ?!
617デフォルトの名無しさん
垢版 |
2020/08/27(木) 16:00:15.44ID:lxQOOhz0
831 デフォルトの名無しさん sage 2018/11/11(日) 10:00:59.18 ID:Tyd11AGx
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。

925 デフォルトの名無しさん 2018/11/21(水) 18:36:07.42 ID:8Yc2p7H1
>>919
>そもそもアランケイの言う「実行中」は「起動中」であって
>「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に

チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。

829 デフォルトの名無しさん 2018/11/11(日) 09:52:59.70 ID:y84pWKv0
(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。

『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
618デフォルトの名無しさん
垢版 |
2020/08/27(木) 16:22:44.00ID:5/hfp35I
>>533
医学的にチンポは不随意筋だけど、心臓のように常に恒常的に動いているわけではないし、
オシッコを出したり止めたりは随意筋として動かすことも出来てしまう。

>>616
自分の体の一部としてのコンポジションであるのと同時に、自分の意志とは無関係に勃起する継承クラス。
繋がっているコンポジションであり、かつ独立した主体として振る舞う。
619デフォルトの名無しさん
垢版 |
2020/08/27(木) 16:27:02.84ID:5/hfp35I
>>539
クリントン大統領といえどもチンポは独立主体であり、かつチンポがシコシコしてしまうと、
チンポは大統領権限をも超えてチンポがホワイトハウスを支配してしまう。
620デフォルトの名無しさん
垢版 |
2020/08/27(木) 16:44:10.57ID:eFA7BsAf
>>539
>クリントンの「不適切な関係」

チンポがシコシコしてしまったのは、大統領に悪意があったわけではないが、所有者責任は免れない。
飼い犬が歩行人に噛み付いたら、飼い主に管理者責任が生じるというのと同じ。
621デフォルトの名無しさん
垢版 |
2020/08/27(木) 16:46:23.50ID:eFA7BsAf
>>550
夏目くんは何も悪いことはしていないセクハラではない、チンポが勝手にシコシコしまっただけ。
2020/08/27(木) 18:21:41.94ID:wrfFiWTH
>>612
グローバル変数なら一行で済むとか言えば技術的にグローバル変数のが優れてることになるが?
グローバル変数を管理できないお前の技術がないといわれたらどうすんの?
少なくともCPUからしたらそうだが。
技術的ってのがそれこそ人間の認識能力の前提によってるってことに全く気付かない馬鹿なのかな?
2020/08/27(木) 18:25:09.77ID:Q9F08mvx
>>622
頭悪そうw

ようするにね、優秀な人(Googleレベルでいいよ)が
優れた技術だって言っていれば、技術は優れてるってこと

その技術が使えない人がいたなら、それは技術じゃなくて
人間の問題だってこと
2020/08/27(木) 18:56:54.22ID:Av3pnrM3
技術が優れてるかどうかの判断基準や観点の違いでしょ
その基準の一つに頭悪い人でも使いやすいかどうかというのがあっても何もおかしくない

物事を一面的にしか捉えられない人はソフトウェアの仕事には向かない
625デフォルトの名無しさん
垢版 |
2020/08/27(木) 19:15:28.22ID:JwVMaeMo
>>605
関数型プログラミングで使われるデータ構造は
状態を持たないわけじゃなくて状態が不変なだけだと思うよ
状態を変えるときはオブジェクトを作り直す感じ

文字列のオブジェクトは関数型言語じゃなくても不変なのが一般的だと思うよ
626デフォルトの名無しさん
垢版 |
2020/08/27(木) 19:21:54.69ID:LjKzxOF2
>>624
>技術が優れてるかどうかの判断基準や観点の違いでしょ

他所で広く使われているか、という指標はどうだろうか?

使われるコードは良いコード、使われないコードは悪いコード。デファクトスタンダードという言葉もある。
627デフォルトの名無しさん
垢版 |
2020/08/27(木) 19:38:47.84ID:OAHLXlr3
多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。

最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
2020/08/27(木) 19:51:25.25ID:11nNbPii
数人月の仕事なら何だって良いさ
時間貰えばコードの隅から隅まで読んで把握出来る

みずほのサグラダ・ファミリアがグローバル変数で完成するならそういう話をしてよ
629デフォルトの名無しさん
垢版 |
2020/08/27(木) 19:51:41.61ID:OAHLXlr3
令和のコペルニクス
https://youtu.be/7DbdPKWhrpY

室町時代のアミダくじは円形であること、ベンゼン環の六角構造、赤青緑の三色ダイオードを考えてみた。

ソースコード
https://drive.google.com/file/d/1hsFT2F4AMgUv1JHqy0si_7Yj7q7TyHnR/view
630デフォルトの名無しさん
垢版 |
2020/08/27(木) 20:00:22.80ID:OAHLXlr3
カプセル化とはオブジェクトの独立性でありオブジェクトカプセルのことだ!

>>64
>設計的にはイベントというかメッセージ以外のアクセスを許さないためのカプセル化だろ?

洋式便器に座ってオシッコを出したり止めたりするのに、チンポがどうなっているかを確かめる必要無いだろ?

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
631デフォルトの名無しさん
垢版 |
2020/08/27(木) 20:10:35.55ID:LUaIeiWj
    _w           、...   ョ  ┌┐     ィ     ′  
    ̄+     ヘe、   j「.  .¬气¬''..~''~    ,.ルw、.ーu、す     
  ^^"~~l|~~^'''       ォ′   .,. l| ┐      .√ j|  _~+,.、. 
 .   .,/.      ょ_/    、j「 {  `¬..   〃 .、l|    、  
 ..  ~^.               ~  `          ~^      
 .  ;.                 ョ         __      
 .  j|       ~ラ¬¬+     |.        ̄.   ̄..    
 .  オ                 |..   ォ        ,、  
    k、 ,j〃.   L_.  _ェ    ~'――'~.   ^^^^^^ ̄´    
      ̄′       ̄ ̄ 
632デフォルトの名無しさん
垢版 |
2020/08/27(木) 20:16:01.13ID:YMQIhwLV
>例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

当然ながら起きているときも、チンポがシコシコする!

 風呂から出て体一杯に水を浴びながら竜哉は、この時始めて英子に対する心を決めた。裸の上半身にタオルをかけ、
離れに上ると彼は障子の外から声を掛けた。
「英子さん」
 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。
 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。

●これが衝撃の「障子破り」シーンだ! (石原慎太郎 『太陽の季節』 (新潮文庫) より)

>その瞬間、竜哉は体中が引き締まるような快感を感じた

チンポがシコシコする≠勃起、つまりそれはただチンポが勃起するのではなくて、
「体中が引き締まるような快感を感じた」ということなのである!!
2020/08/27(木) 20:38:21.72ID:Q9F08mvx
>>624
> その基準の一つに頭悪い人でも使いやすいかどうかというのがあっても何もおかしくない

それが本当に 頭悪い人 "でも" 使いやすいのであれば
頭が良い人でも使いやすいんだよ

頭が良くなるにつれて、使いづらくなるものは
それは技術ではなく人の問題になってる
634デフォルトの名無しさん
垢版 |
2020/08/27(木) 20:52:06.48ID:m77ghP+M
>>623
>優秀な人(Googleレベルでいいよ)が優れた技術だって言っていれば

問『なぜ、人を殺してはいけないのか?』
答『この社会の法律でそういうことになっているから』
問『トランプ大統領は原爆素晴らしいと言ってるぞ?』
答『アメリカ大統領に日本の法律は通じない』
2020/08/27(木) 20:56:18.38ID:Q9F08mvx
>>634
関係ない話ですね。
技術の話をしましょう
636デフォルトの名無しさん
垢版 |
2020/08/27(木) 21:12:15.32ID:m77ghP+M
優れた技術とやらが常に新しいシステムのことだとすれば、

>>611
>うちの人材は技術力が低いので優れた技術を使えない

Windows 7の2023年までの延長サポート、あらゆる企業が購入可能に Microsoftが方針転換
https://www.itmedia.co.jp/news/spv/1910/03/news091.html

古いシステムを使っている企業は、技術力低いということになるのか?
2020/08/27(木) 21:17:37.90ID:Q9F08mvx
優れた技術が常に新しいシステムなんて言ってませんね
言ってない話を前提にしてるので
レスするだけ無駄ですね
638デフォルトの名無しさん
垢版 |
2020/08/27(木) 21:24:22.38ID:m77ghP+M
>>635
偉い人が言うことだから正しいってのはお里が知れてるってことなんだが?
2020/08/27(木) 21:25:39.84ID:Q9F08mvx
>>638
はい、それも言ってませんね
なんでいちいちデマ流すんですか?
こうやって俺がバラすから効果ないですよ?

偉い人じゃなくて、専門家の言うことだから正しい
640デフォルトの名無しさん
垢版 |
2020/08/27(木) 21:29:09.27ID:m77ghP+M
>>637
優れた技術とやらが、例えばナチスドイツの軍事技術だとすれば非常に馬鹿げていると思うぞ。
ソビエトのバグラチオン作戦でナチの精鋭は壊滅、ジェット機やミサイル兵器は役に立たなかった。
2020/08/27(木) 21:29:47.44ID:Q9F08mvx
> 優れた技術とやらが、例えばナチスドイツの軍事技術だとすれば
それもいってませんねw
まいどまいど印象操作
642デフォルトの名無しさん
垢版 |
2020/08/27(木) 21:34:17.32ID:m77ghP+M
>>639
>専門家の言うことだから正しい

STAP細胞論文の責任著者の一人である理化学研究所の笹井芳樹氏が8月5日、死亡した。52歳だった。
神戸市の先端医療センターの関連施設の階段5階の踊り場で、ひも状のもので首を吊っていたという。
遺書らしきものが見つかっており、兵庫県警では自殺を図ったとみている。
https://m.huffingtonpost.jp/2014/08/04/sasaiyoshiki-attempt-suicide_n_5649588.html

新井紀子教授のAIやコンピュータに関する知識は素人に毛が生えた程度
新井紀子教授の『AI vs. 教科書が読めない子どもたち』という本が大変売れているようです。
私も本を購入し精読させていただきました。
一言で感想を言うと、新井紀子教授のAI技術に関する知識はせいぜいAI関連ニュースに詳しい人レベルであり、
そのベースであるコンピュータに関する知識もほぼ素人だということがわかりました。
https://mywarstory.tokyo/inconvenient-truth/
643デフォルトの名無しさん
垢版 |
2020/08/27(木) 21:54:59.56ID:s9fS5Msc
素人はおとなしくしてろ
2020/08/28(金) 00:01:24.91ID:OgWlouZ2
藻前ラ
モチツケ
https://video.twimg.com/ext_tw_video/1250511304349057024/pu/vid/720x836/64-ID9EPd8HNn5x1.mp4?tag=10
2020/08/28(金) 00:16:44.09ID:30PWE3IP
https://video.twimg.com/ext_tw_video/1226889263557554182/pu/vid/634x476/_I02tX673jAgsrK2.mp4?tag=10
2020/08/28(金) 00:25:15.08ID:an13tW42
https://ero-giftter.com/wp-content/uploads/contents/0565/030.gif
2020/08/28(金) 01:23:51.12ID:I2GFa1tZ
>>642
え?それがなにか?w
648デフォルトの名無しさん
垢版 |
2020/08/28(金) 10:41:00.53ID:i6Fmhhr5
24 名無しさん@ゴーゴーゴーゴー! (JP 0H82-LX7o [153.145.207.163]) 2019/11/23(土) 16:54:55.03 ID:l9637O/lH
https://i.imgur.com/1VuRIrP.jpg
649デフォルトの名無しさん
垢版 |
2020/08/28(金) 11:18:02.52ID:YjugbQV3
>>586
あんま難しく考えなくて良いと思う。
ただの解釈の違い。
オブジェクト指向は手続き型言語にグローバル変数を減らす為に、グローバル変数とそれ必要とする複数の関数をさらに包み込む物を用意した。
関数型言語は関数の引数や、関数の中でのみ変数を書き換えられると言う制約でグローバル変数の危険性を回避した。

手続き型言語(Python)

def fib( n):
temp = 0
a = 0
b = 1
for i in range( n):
temp = a
a = b
b += temp
return a

Haskell

fib n = fib’ n 0 1  
where
fib’ 0 a _ = a
fib’ n a b = fib’ (n–1) b (b + a)

 
650デフォルトの名無しさん
垢版 |
2020/08/28(金) 11:31:44.63ID:YjugbQV3
オブジェクト指向と関数型のどっちがどうと言うのは知らんけど、Haskellと言うか圏論の考え方は面白いとは思うよ。
視野を広げる意味でもHaskellは学んで損は無いと思う。

入出力も圏論的にはキーボードそのものを変数の様な物と捉える。
値が入ってくる方向が違うと言う意味では虚数と実数の関係に似ている。

readLn >>= \x -> (2 * x)

f x = (2 * x)

カリー化するとより似てる。

readLn >>= (2*)

f = (2*)

また、変数も引数の無い関数と捉えられる。
main関数はmain変数と言う見方も出来るし、x = 2は常に2を返す関数xとも捉えられる。
651デフォルトの名無しさん
垢版 |
2020/08/28(金) 11:39:16.31ID:YjugbQV3
x readLn >>= \x -> (2 * x)
o readLn >>= \x -> print (2 * x)

x readLn >>= (2*)
o readLn >>= print.(2*)
2020/08/28(金) 12:23:30.81ID:PrwED61V
カプセル化が悪いんじゃなくてせっかくのカプセル化をぶち壊すのが悪いんだ
2020/08/28(金) 12:35:06.15ID:RBhGMmXK
「内部には高電圧部があり感電する危険がありますから
サービスエンジニア以外は分解改造してはいけません」
2020/08/28(金) 14:52:09.13ID:k/wySbW5
>>653
ソースコード公開されていたからって素人が改造したらだめだよな
特にセキュリティ部分とか
655デフォルトの名無しさん
垢版 |
2020/08/28(金) 16:44:01.34ID:BawoiMjj
詫びソースコード

アイミョン
[KS108-054]
テーマ:冒険者の広場・DQXショップ2020/02/17 16:22
今月になってから急にシステム障害が多発しており、運営としては説明責任を果たすべきと考えます。

https://hiroba.dqx.jp/sc/news/category/3/

不具合を出した個所とその修正箇所の両方を「詫びソースコード」として開示するのです。
ソースコードも企業の重要な著作物ですが、だからこそ開示して詫びることが大切です。
それと同時にシステムの不具合がなぜ多発しているのかを、プレイヤーも一緒に考えるのです。
バンダイナムコゲームスの『ドラゴンボールZ ドッカンバトル』を見習うべきです。


https://i.imgur.com/QHVwmj5.jpg
656デフォルトの名無しさん
垢版 |
2020/08/28(金) 16:49:45.88ID:BawoiMjj
>>586
>オブジェクト指向とは何か、関数型とは何か

勃起するときのチンポはオブジェクト指向、オシッコする時のチンポは関数型。
自らの意志で勃起し射精する独立型と、オシッコを出したり止めたりの制御型とを区別することが大切。
657デフォルトの名無しさん
垢版 |
2020/08/28(金) 17:15:51.36ID:H48t2s60
カプセル化って悪いことなのか?
俺にとってはメリットしかないと思ってるのだが。
>>2のような例はカプセル化が問題なのではなくて、設計の問題だろう。
必要なデータにアクセスできないような設計になっているのが悪い。

知られてはイケナイ情報は隠蔽すべきだろう。
カプセル化を否定するということは、自動販売機に向かって
「いくら銭が貯まってるのか見せろ」などと言ってるようなもん。
パソコンの電源ユニットも勝手に分解できないように封印がされてるし、
女の子のパンティーも隠蔽されている。
658デフォルトの名無しさん
垢版 |
2020/08/28(金) 17:18:13.19ID:BawoiMjj
>>589
人体を扱う医学分野とか自然言語処理とかでは、ますますオブジェクト指向が大切になってくるよな。
機械的に統計取るだけならグローバル変数でもいいけど、人間科学生態科学は独立性を抜きには考えられない。
659デフォルトの名無しさん
垢版 |
2020/08/28(金) 17:29:34.40ID:BawoiMjj
オブジェクト指向とは、Rubyのような所謂オブジェクト指向プログラミング言語のことではない!

つまりオブジェクト指向とは、俺の股間に付いているモノに他ならない!
660デフォルトの名無しさん
垢版 |
2020/08/28(金) 18:01:30.91ID:qvGvuXDB
いくら熱心に勉強しても
チンポの事しか話せないなら意味がないな
誰もいないスレに1人で連投してスレを汚すんじゃない
661デフォルトの名無しさん
垢版 |
2020/08/28(金) 18:15:41.26ID:1ynI1oSD
>>660
ならオブジェクト指向とは何かを、自分の言葉で簡潔に述べてみろ!
2020/08/28(金) 18:27:24.04ID:k/wySbW5
大規模システムを小さい多数のコンポーネントに分割することで
管理しやすくし、複数人での並行開発を行えるようにする技術かな
663デフォルトの名無しさん
垢版 |
2020/08/28(金) 18:53:44.07ID:BnzPgwao
>>662
では「オブジェクトの多重継承」とは何か? そして多重継承はなぜ必要なのか?
2020/08/28(金) 18:57:04.23ID:k/wySbW5
>>633
> では「オブジェクトの多重継承」とは何か? 
2つのオブジェクトを継承(実装を伴うもの)したいときに使うもの

> そして多重継承はなぜ必要なのか?
オブジェクト指向が提供する技術はどれも必須ではない
技術は必要かどうかではなく、何かを実現したい時(必要な時)に使うもの
言葉自体がおかしい
665デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:27:52.86ID:XFujtf5p
オブジェクト指向がコンポーネント技術の需要から始まったことは周知のとおりだが、コンポーネント化のアイデアそのものが誤りだった可能性もあるな。
2020/08/28(金) 20:29:24.21ID:k/wySbW5
>>665
お前の意見は中身が無いので

コンポーネント化のアイデアは正しかった可能性もある
というふうに、簡単に言い返すことが出来る
667デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:32:35.48ID:XFujtf5p
>>666
可能性があると言うより、正しいと信じて邁進してきた。

ところがどうも間違ってるような気がするんだよな。
2020/08/28(金) 20:34:17.13ID:k/wySbW5
>>667
あの、意見はないの?
ないんだよね
669デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:37:52.62ID:XFujtf5p
オブジェクト指向の限界は皆が感じていて、これから学ぼうとする初心者たちがオブジェクト指向が良いものだと言ってる状況では?

間違っていた可能性があると言うだけで、ほとんどの人には十分だと思う。
2020/08/28(金) 20:41:02.14ID:k/wySbW5
なにが十分なのわからないが?

例えば推理もの小説でその人が犯人だという証拠があがってる中、
ヘボ探偵が、その人犯人じゃない可能性がある!と言った所で
その後に理由をいわなければ、何の意味もないことぐらいわかるでしょw
2020/08/28(金) 20:44:48.47ID:Qq63pedZ
麻酔針犯人プッシュ!
コナン(ボイスチェンジャー)「私が犯人デス!」

コレ
672デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:46:07.59ID:JFdvcY0m
だからオブジェクト指向も理解できてない素人を真面目に相手にするなって
673デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:48:37.42ID:XFujtf5p
推理ものだと思うのはこれからオブジェクト指向を学ぶ初心者でしょ。

オブジェクト指向を使いこなしてきた人にとっては合意の取れた事実だから。

オブジェクト指向をこれから学ぼうとする初心者が話に加わろうとする気持ちはわからんでもないが、おまえにはまだ早いという人が居るのも無理からぬ話。
2020/08/28(金) 20:49:36.03ID:k/wySbW5
> おまえにはまだ早いという人が

また人の話にすり替えたw
675デフォルトの名無しさん
垢版 |
2020/08/28(金) 20:52:52.49ID:XFujtf5p
STLが非常に参考になる。

もちろん、これからの時代にSTLレベルでは話にならない。

思考の出発点として素晴らしい。
676デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:05:56.68ID:JFdvcY0m
STLってなんだよ
Standard Template Languageか?
最近おぼえた単語を言いたくてしょうがないって感じだなw
677デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:06:16.07ID:XFujtf5p
コンポーネントというのは、バベルの塔だったんじゃないかと思ってな。
678デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:06:55.78ID:JFdvcY0m
Language ✗
Library ○
679デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:07:43.45ID:JFdvcY0m
お前にはScratchで十分だ!
680デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:08:35.98ID:JFdvcY0m
コンポーネントって単語も最近覚えたんだね
よかったでちゅね〜
681デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:41:15.03ID:npmi1CGp
>>672
>だからオブジェクト指向も理解できてない素人を

ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
682デフォルトの名無しさん
垢版 |
2020/08/28(金) 21:51:25.23ID:npmi1CGp
例えば具体的にいかなる形で「分割」するかだが、

>>662
>大規模システムを小さい多数のコンポーネントに分割することで

まず自分とチンポを分割すること。チンポは独立した生き物で、チンポは自分の意志で勃起してシコシコする。
683デフォルトの名無しさん
垢版 |
2020/08/28(金) 23:17:35.99ID:XFujtf5p
「画面上に4個のボタンがある」

ボタンのように見せかけてるだけで、ボタンじゃないんだよ。

だから、ボタンとして分割することはできない。
2020/08/29(土) 00:36:34.24ID:SgECYZiQ
コンポーネントに分割することで管理しやすくするというだけなら、関数型や非オブジェクト指向の手続型でも共通のような。
コンポーネント化の単位として、オブジェクトを選択したことの優位性如何というのがポイントになってくるのでは。
685デフォルトの名無しさん
垢版 |
2020/08/29(土) 00:45:30.98ID:g18FcF9h
やはり関数型OSが本命だろうな。
686デフォルトの名無しさん
垢版 |
2020/08/29(土) 03:45:42.19ID:g18FcF9h
4個のON/OFFボタンは4ビットで表せる。
HDグラフィックスは3MB程度。
ということは、4ビット入力して3MB出力するような関数があれば良いと考える。
ここが出発点じゃないか?
687デフォルトの名無しさん
垢版 |
2020/08/29(土) 08:41:46.22ID:oUMAS3pz
>>685
関数型がなんなのかわかってれば、そもそもそんなこと言えんわ。
688デフォルトの名無しさん
垢版 |
2020/08/29(土) 10:42:20.92ID:+QUdJXvJ
C++のSTLはLispの超進化バージョンだから関数型への回帰に見える

要するに汎用的な関数を作りたいんだろう
テンプレートを使った万能な関数を作りたいワケだ

C++というかプログラミング言語の狙いはそこ(万能な関数)にある
例えばmax関数一つ作るだけで、どんな型でも最大値を出せる……てのが理想だ
2020/08/29(土) 15:54:18.98ID:MNNuNAQw
ジェネリック知らないのかな?

Lispは動的言語だからSTLとの比較で進化も退化もない
690デフォルトの名無しさん
垢版 |
2020/08/29(土) 19:30:12.05ID:07o8HjE4
関数型が出せなければ、Windowsも終わるだろうな。
691デフォルトの名無しさん
垢版 |
2020/08/29(土) 19:39:16.76ID:urowXmVA
>>686
64ビットのCPUなんですけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況