前スレ
オブジェクト指向はオワコン?
https://mevius.5ch.io/test/read.cgi/tech/1721393540/
オブジェクト指向はオワコン? part2
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2026/08/13(木) 14:38:03.02ID:pdAcKRXu910デフォルトの名無しさん
2026/08/25(火) 21:12:58.03ID:2JbrJHvg なんていうか、猿でも作れるツクール的な感じ
だけどツールでもないしな
プロでも作れないオブジェクト指向のための言語になってる
だけどツールでもないしな
プロでも作れないオブジェクト指向のための言語になってる
911デフォルトの名無しさん
2026/08/25(火) 21:16:16.70ID:1JhonwiJ >>909
無駄じゃないだろ
無駄じゃないだろ
912デフォルトの名無しさん
2026/08/25(火) 21:20:57.24ID:DTj/Nd7/ >>911
削り落とせるぞ
削り落とせるぞ
913デフォルトの名無しさん
2026/08/25(火) 21:21:16.82ID:2JbrJHvg CPUはかなり遠回りで無駄なことをしてるんだよ
人間様用の高級言語のせいでね
人間様用の高級言語のせいでね
914デフォルトの名無しさん
2026/08/25(火) 21:22:14.14ID:DTj/Nd7/ つまり0721か
915デフォルトの名無しさん
2026/08/25(火) 21:34:08.05ID:kmT7Vw9O >>912
それが無駄な作業なのでは?
それが無駄な作業なのでは?
916デフォルトの名無しさん
2026/08/25(火) 21:39:26.92ID:kmT7Vw9O オブジェクトをなくしたところで状態が必要なくなるわけではないからなあ、状態を管理しようと思ったらオブジェクトで操作とセットにしておけばわかりやすいだろ、その努力こそがオブジェクト指向なんだよ
917デフォルトの名無しさん
2026/08/25(火) 21:42:54.15ID:kmT7Vw9O 状態も操作もバラバラにあっちこっちに散りばめたら管理できなくなる、100億を超える大規模なシステム開発が失敗して損害賠償の裁判が起きたという話をたまに聞くだろ、ああいうのも元をたどればオブジェクト指向が原因なんですか?
918デフォルトの名無しさん
2026/08/25(火) 22:04:51.61ID:hHo/2XBn >>599 ruby
https://ideone.com/TZGLeB
・>>846の委譲でなんとかするやつの移植
・Javaの発想からスタートしたからRubyっぽくないかも
>>884
> オブジェクトを最小限にすることもオブジェクト指向である
かもね
やっぱクラスにせよインスタンスにせよ不必要に増やしたらあとで苦しいよ
https://ideone.com/TZGLeB
・>>846の委譲でなんとかするやつの移植
・Javaの発想からスタートしたからRubyっぽくないかも
>>884
> オブジェクトを最小限にすることもオブジェクト指向である
かもね
やっぱクラスにせよインスタンスにせよ不必要に増やしたらあとで苦しいよ
919デフォルトの名無しさん
2026/08/25(火) 22:13:35.74ID:1JhonwiJ 異なる種類のオブジェクトを共通のインターフェースに結びつけることは
オブジェクトの意味と立ち位置をはっきりさせる
オブジェクト間の関係もはっきりさせる
それらを使う側から見ると
インターフェース抽象型として同一に扱える
つまりコードの共通化ができる
インターフェースを実装してないオブジェクトに間違って適用してしまうバグも防げるため型安全性もある
C言語の関数ポインタやPythonのCallableと比べると使い勝手も安全性も格段に良くなっている
インターフェースを用いたオブジェクト指向プログラミングは可読性も保守性も良くなりバグも減らす
オブジェクトの意味と立ち位置をはっきりさせる
オブジェクト間の関係もはっきりさせる
それらを使う側から見ると
インターフェース抽象型として同一に扱える
つまりコードの共通化ができる
インターフェースを実装してないオブジェクトに間違って適用してしまうバグも防げるため型安全性もある
C言語の関数ポインタやPythonのCallableと比べると使い勝手も安全性も格段に良くなっている
インターフェースを用いたオブジェクト指向プログラミングは可読性も保守性も良くなりバグも減らす
920デフォルトの名無しさん
2026/08/25(火) 22:35:05.17ID:E8remrnh921デフォルトの名無しさん
2026/08/25(火) 22:44:34.17ID:1JhonwiJ922デフォルトの名無しさん
2026/08/25(火) 23:21:32.61ID:DTj/Nd7/ >>915
それなら最初から無駄を付けない・省くのが最強だろ
それなら最初から無駄を付けない・省くのが最強だろ
923デフォルトの名無しさん
2026/08/25(火) 23:24:12.29ID:jUy9So8k プログラマじゃなく管理する側に都合のいいのがオブジェクト「至高」
プログラムを書かないのでどんな処理をするにはどんな書き方があるとか分かって無いけど、オブジェクト指向なら纏められるってので飛びついてオブジェクト指向が目的となってる
プログラムを書かないのでどんな処理をするにはどんな書き方があるとか分かって無いけど、オブジェクト指向なら纏められるってので飛びついてオブジェクト指向が目的となってる
924デフォルトの名無しさん
2026/08/25(火) 23:33:49.21ID:ERS3Iam5 インターフェイスを共通にするというのは良いとしても、コールバック関数で済むことなら個人的にはわざわざオブジェクトにはしたくないとやっぱり思っちゃうかな。
Pythonならユーザー定義クラスを作って継承するなりtyping.Protocolを使うなりすることはできるけど、特に状態管理が必要な場合等でなければコールバック関数の方が好ましいと思っちゃうな。
Pythonならユーザー定義クラスを作って継承するなりtyping.Protocolを使うなりすることはできるけど、特に状態管理が必要な場合等でなければコールバック関数の方が好ましいと思っちゃうな。
925デフォルトの名無しさん
2026/08/25(火) 23:38:44.16ID:0Y/Xd6X8 >>924
全てオブジェクトなのにオブジェクトにしたくないとはどういう意味?
全てオブジェクトなのにオブジェクトにしたくないとはどういう意味?
926デフォルトの名無しさん
2026/08/25(火) 23:40:53.88ID:DTj/Nd7/ >>920
言葉に酔って本質を見失うタイプでしょw
言葉に酔って本質を見失うタイプでしょw
927デフォルトの名無しさん
2026/08/25(火) 23:44:47.08ID:ERS3Iam5 あー、ごめん、ユーザー定義クラスのインスタンスにはしたくないというニュアンスで受け取ってもらえれば。関数1つで済むところを、その代わりにクラスを作ってメソッドを定義するというのは、もちろんメリットもあるのだろうけど、本当に手間に見合うだけのメリットなのかというくらいの感じ。
928デフォルトの名無しさん
2026/08/25(火) 23:45:31.01ID:yTdodo0t >>924
そこで使えるコールバック関数一覧をどうやって管理するのかな
そこで使えるコールバック関数一覧をどうやって管理するのかな
929デフォルトの名無しさん
2026/08/25(火) 23:49:02.90ID:ERS3Iam5 FizzBuzzの拡張ルールくらいならそんなに多くはならないだろうし、仮に数十個、数百個になるというなら、専用モジュールを作ってそれに放り込んでおけばいいんじゃない?
930デフォルトの名無しさん
2026/08/26(水) 00:12:54.49ID:qdTH26se インターフェースは異なる型に対して共通のメッセージを送れる仕組み
一般的にはコールバックに置き換えられない
一般的にはコールバックに置き換えられない
931デフォルトの名無しさん
2026/08/26(水) 00:17:59.86ID:z15V+4Gv インターフェイスが一般的にはコールバックに置き換えられないというのはもちろんそうで、今疑問を提示しているのは、コールバックで済むような場合に、わざわざインターフェイスを持ち出す必要はないのではないかということね。
932デフォルトの名無しさん
2026/08/26(水) 00:30:47.65ID:aHX34kXI コールバックが複数あってそれぞれに異なる名前を付けるということは複数のオブジェクトを作っているのと同じだね
それならメソッドとして実装した方が型安全性もよいかな
それならメソッドとして実装した方が型安全性もよいかな
933デフォルトの名無しさん
2026/08/26(水) 04:39:13.97ID:g57AhbG+ 本当は君らプログラミングやソフトウエア開発が苦手なんじゃない?
苦手なのにその自覚がないだけなんじゃない?
苦手なのにその自覚がないだけなんじゃない?
934デフォルトの名無しさん
2026/08/26(水) 04:49:18.83ID:suXVoFGf プログラミングで一番大事なことは型安全だからラップして別の型に
935デフォルトの名無しさん
2026/08/26(水) 04:56:22.38ID:g57AhbG+ 違うだろ、もっとも必要なものは合理的な考え方だろ
936デフォルトの名無しさん
2026/08/26(水) 05:05:16.08ID:qkiKzIk8 全てをイミュータブルにすることが大切
937デフォルトの名無しさん
2026/08/26(水) 08:14:33.47ID:FBlplv6V 関数定義はユーザー定義クラスを定義する等してオブジェクトを作るより簡単だし、コールバック関数は渡された関数内で呼ばれるだけだから、呼び出そうとしたメソッドが存在していなかったという類の問題はもともと生じないと思うんだけど。
たとえば、Pythonの組み込み関数sorted(あるいはlist.sort)は引数keyとしてコールバック関数を取るんだけど(str.lowerなんかを指定する)、これを、特定のインターフェイスを備えたオブジェクトを受け取る形に変更した方が望ましいということにはならないと思う。
たとえば、Pythonの組み込み関数sorted(あるいはlist.sort)は引数keyとしてコールバック関数を取るんだけど(str.lowerなんかを指定する)、これを、特定のインターフェイスを備えたオブジェクトを受け取る形に変更した方が望ましいということにはならないと思う。
938デフォルトの名無しさん
2026/08/26(水) 09:19:21.67ID:sdi3yqbK939デフォルトの名無しさん
2026/08/26(水) 10:04:49.49ID:HFCsEuKA940デフォルトの名無しさん
2026/08/26(水) 10:06:16.63ID:sdi3yqbK >>939
バカ乙
バカ乙
941デフォルトの名無しさん
2026/08/26(水) 10:24:33.47ID:XAtO2pPN942デフォルトの名無しさん
2026/08/26(水) 10:42:25.83ID:p1kFnG2q Woofのルールは303ならFizzFizzじゃなくてFizzFizzFizzみだいたよ
943デフォルトの名無しさん
2026/08/26(水) 10:45:24.36ID:NdwH3mi0944デフォルトの名無しさん
2026/08/26(水) 10:45:25.18ID:sdi3yqbK >>942
キャー助けてー
キャー助けてー
945デフォルトの名無しさん
2026/08/26(水) 10:46:01.13ID:sdi3yqbK >>943
バカ乙
バカ乙
946デフォルトの名無しさん
2026/08/26(水) 11:07:33.27ID:HZ2sBvRV >>938
オブジェクト指向のスレなのにMainしかなくて酷いコード草
オブジェクト指向のスレなのにMainしかなくて酷いコード草
947デフォルトの名無しさん
2026/08/26(水) 11:16:45.19ID:sdi3yqbK >>946
酷いのはお前の頭で大草原、シマウマさんが走ってるわ
酷いのはお前の頭で大草原、シマウマさんが走ってるわ
948デフォルトの名無しさん
2026/08/26(水) 11:20:56.72ID:C23DyjBn >>942
そうなの? だとすると、>>866のwoof_rule関数は、
if str( given_nubmer ) in str( i ): satisfied_count += 1 の行を
satisfied_count += str( i ).count( str( number ) ) に修正する感じかな。
ついでに引数名もちょっと変えてみた。本質的な変更ではまったくないのだけれど。
https://paiza.io/projects/0xwLMmS5rjnLke8sh9ExMg
そうなの? だとすると、>>866のwoof_rule関数は、
if str( given_nubmer ) in str( i ): satisfied_count += 1 の行を
satisfied_count += str( i ).count( str( number ) ) に修正する感じかな。
ついでに引数名もちょっと変えてみた。本質的な変更ではまったくないのだけれど。
https://paiza.io/projects/0xwLMmS5rjnLke8sh9ExMg
949デフォルトの名無しさん
2026/08/26(水) 11:25:19.71ID:sC8u3BU+ >>938は関数型プログラミングをわかっていないのだと思われる
foldやreduceを知らない
foldやreduceを知らない
950デフォルトの名無しさん
2026/08/26(水) 11:28:41.50ID:C23DyjBn >>941
コールバック関数を渡す設計にするのは、1つの引数に1つの関数を渡すというケースだと思うけど。複数のメソッドを持つオブジェクトを渡すことが必要な場合ならもちろんオブジェクトで渡すけれども、sortedのkey引数のように単一の関数を渡せば済むようなケースで、あえて単一メソッドのオブジェクトを作って渡す必要はないんじゃないかと思う。
コールバック関数を渡す設計にするのは、1つの引数に1つの関数を渡すというケースだと思うけど。複数のメソッドを持つオブジェクトを渡すことが必要な場合ならもちろんオブジェクトで渡すけれども、sortedのkey引数のように単一の関数を渡せば済むようなケースで、あえて単一メソッドのオブジェクトを作って渡す必要はないんじゃないかと思う。
951デフォルトの名無しさん
2026/08/26(水) 11:38:52.55ID:sdi3yqbK >>949
バカ乙
バカ乙
952デフォルトの名無しさん
2026/08/26(水) 11:39:45.46ID:N0ZXk9lg953デフォルトの名無しさん
2026/08/26(水) 11:55:56.95ID:JrGcaWVK オブジェクト指向はオワコン? part3
https://mevius.5ch.io/test/read.cgi/tech/1787712923/
https://mevius.5ch.io/test/read.cgi/tech/1787712923/
954デフォルトの名無しさん
2026/08/26(水) 11:58:22.44ID:sdi3yqbK >>953
ありがとー仕事が早い
ありがとー仕事が早い
955デフォルトの名無しさん
2026/08/26(水) 12:04:02.43ID:sdi3yqbK オブジェクトの状態を変えられるか否かが可変性(ミュータブル/イミュータブル)
変数への再代入ができるか否かが再代入可能性(リアサイナブル/ノンリアサイナブル)
これらは異なるものなんよ
変数への再代入ができるか否かが再代入可能性(リアサイナブル/ノンリアサイナブル)
これらは異なるものなんよ
956デフォルトの名無しさん
2026/08/26(水) 12:08:33.08ID:C23DyjBn >>952
たとえば、Pythonの組み込みソート関数sortedの引数keyには、引数を1つとって1つの値を返すコールバック関数を渡すんだけど、このコールバック関数の引数になるのはソート対象のコンテナの各要素なので、イメージとしてはコンテナの各要素に対して(コンテナの各要素を引数として)コールバック関数を呼び出す感じになる。
で、このコールバック関数を仮にオブジェクトのメソッドに置き換えるとした場合、何をレシーバーにする(どのオブジェクトに属するメソッドにする)のが、設計上無難なのかというのは、コールバック派の自分にはよく分からないかな。何らかの管理用オブジェクトを作ってそのメソッドにする方向になるのかなとも思うけれども。
メソッドのレシーバーをどのように渡すのかという問いに対しては、そもそもどういったものがレシーバーとして想定されているかがよく分からないのでそれを明らかにしてもらえると助かるかなという感じなのだけれど。
たとえば、Pythonの組み込みソート関数sortedの引数keyには、引数を1つとって1つの値を返すコールバック関数を渡すんだけど、このコールバック関数の引数になるのはソート対象のコンテナの各要素なので、イメージとしてはコンテナの各要素に対して(コンテナの各要素を引数として)コールバック関数を呼び出す感じになる。
で、このコールバック関数を仮にオブジェクトのメソッドに置き換えるとした場合、何をレシーバーにする(どのオブジェクトに属するメソッドにする)のが、設計上無難なのかというのは、コールバック派の自分にはよく分からないかな。何らかの管理用オブジェクトを作ってそのメソッドにする方向になるのかなとも思うけれども。
メソッドのレシーバーをどのように渡すのかという問いに対しては、そもそもどういったものがレシーバーとして想定されているかがよく分からないのでそれを明らかにしてもらえると助かるかなという感じなのだけれど。
957デフォルトの名無しさん
2026/08/26(水) 12:10:23.44ID:sU6/QjKC958デフォルトの名無しさん
2026/08/26(水) 12:16:38.05ID:sdi3yqbK >>957
何をデスカ?
オブジェクトがイミュータブルならオブジェクトを変数に入れてもオブジェクトの状態は書き換えられませんよ
変数への代入とオブジェクトの状態を変える操作はまるで違うものだということを理解したが良い
何をデスカ?
オブジェクトがイミュータブルならオブジェクトを変数に入れてもオブジェクトの状態は書き換えられませんよ
変数への代入とオブジェクトの状態を変える操作はまるで違うものだということを理解したが良い
959デフォルトの名無しさん
2026/08/26(水) 12:25:10.38ID:5yDcdQ0U960デフォルトの名無しさん
2026/08/26(水) 12:36:00.57ID:vdIJI+q7 >>958
そこは言語によって千差万別だから意味のない主張
さらに全てがオブジェクトの言語もあれば
言語仕様にオブジェクトの概念が存在せず型とその値とそれを格納する変数しか存在しない言語も多い
オブジェクトだけがイミュータブルという主張こそ馬鹿げている
そこは言語によって千差万別だから意味のない主張
さらに全てがオブジェクトの言語もあれば
言語仕様にオブジェクトの概念が存在せず型とその値とそれを格納する変数しか存在しない言語も多い
オブジェクトだけがイミュータブルという主張こそ馬鹿げている
961デフォルトの名無しさん
2026/08/26(水) 12:36:50.80ID:C23DyjBn 「コールバック関数で済む場合に、わざわざオブジェクトを渡す設計にする必要はないよね」という主張なので、「コールバック関数で済む場合もたしかにあるね」ということになると、主張の対立するポイントがなくなって話は終わってしまうのだけど。別に何でもかんでもコールバックでやりましょうと言いたいわけではないので。
962デフォルトの名無しさん
2026/08/26(水) 12:43:56.53ID:sdi3yqbK >>960
イミュータブルなオブジェクトを変数に代入しても
オブジェクトが可変になるわけじゃないでしょ
> オブジェクトを変数に入れれば書き換えてもいいんだな
と言っておられたからオブジェクトの状態は書き換えられないよってこと
再代入しても良いかという問いならやりたければやれば良いと思う、が僕の主張だよ
言語によって千差万別だというのが君の主張だね
その主張に意味があるとは僕は思えないな、シマウマ追っかけてた方がまだ有意義だよ
イミュータブルなオブジェクトを変数に代入しても
オブジェクトが可変になるわけじゃないでしょ
> オブジェクトを変数に入れれば書き換えてもいいんだな
と言っておられたからオブジェクトの状態は書き換えられないよってこと
再代入しても良いかという問いならやりたければやれば良いと思う、が僕の主張だよ
言語によって千差万別だというのが君の主張だね
その主張に意味があるとは僕は思えないな、シマウマ追っかけてた方がまだ有意義だよ
963デフォルトの名無しさん
2026/08/26(水) 12:51:45.29ID:wdN0r8cQ >>961
横からだが
特化した処理部分をコールバック関数という形で受け取って処理するか
インターフェースを実装したオブジェクトを定義して特化した処理をメソッドの中に書くか
を比較してるんじゃないのかな?
横からだが
特化した処理部分をコールバック関数という形で受け取って処理するか
インターフェースを実装したオブジェクトを定義して特化した処理をメソッドの中に書くか
を比較してるんじゃないのかな?
964デフォルトの名無しさん
2026/08/26(水) 12:53:37.51ID:nPTCa+m2 >>961
コールバック関数が一つだけなら大丈夫だよ
しかし今回は多数の種類があるから話が別かな
多数ある関数が同じ場所で使われる同類だとコード上で示す必要があるよ
たまたま同じ型の関数が間違って使われることを防ぐことも必要だね
それらを一気に解決する方法としてラップがあるよ
値オブジェクとも言われてその値だけをラップしたオブジェクトを作る方法
今回の場合はコールバックとして使われる関数をすべて同じオブジェクトとしてラップだね
もちろんメソッドは要らないし他の値は持たないから手間もかからないよ
これだけで同種のオブジェクトとしてコード上に明示されると共に型安全性も保証されるメリットがあるよ
コールバック関数が一つだけなら大丈夫だよ
しかし今回は多数の種類があるから話が別かな
多数ある関数が同じ場所で使われる同類だとコード上で示す必要があるよ
たまたま同じ型の関数が間違って使われることを防ぐことも必要だね
それらを一気に解決する方法としてラップがあるよ
値オブジェクとも言われてその値だけをラップしたオブジェクトを作る方法
今回の場合はコールバックとして使われる関数をすべて同じオブジェクトとしてラップだね
もちろんメソッドは要らないし他の値は持たないから手間もかからないよ
これだけで同種のオブジェクトとしてコード上に明示されると共に型安全性も保証されるメリットがあるよ
965デフォルトの名無しさん
2026/08/26(水) 12:58:49.29ID:yH/m4JlP966デフォルトの名無しさん
2026/08/26(水) 12:58:58.05ID:wdN0r8cQ >>964
色んな種類の関数を受け取れるようにするためにコールバック関数があるんだから多数の種類がない場合なんてない
色んな種類の関数を受け取れるようにするためにコールバック関数があるんだから多数の種類がない場合なんてない
967デフォルトの名無しさん
2026/08/26(水) 13:01:35.44ID:sdi3yqbK >>965
ローカル変数がミュータブルでも関数が純粋であることには変わりはないから
変数への再代入を禁止することが大切だというのはただの君の思い込み
君は昔から思い込みが激しい、僕のコードを100回読んで心を浄化したが良い
礼はいらないよ、僕のコードで君が救われるなら本望だ
ローカル変数がミュータブルでも関数が純粋であることには変わりはないから
変数への再代入を禁止することが大切だというのはただの君の思い込み
君は昔から思い込みが激しい、僕のコードを100回読んで心を浄化したが良い
礼はいらないよ、僕のコードで君が救われるなら本望だ
968デフォルトの名無しさん
2026/08/26(水) 13:05:31.82ID:sdi3yqbK ミュータブル変数と言った場合は変数の型がミュータブルであることを表すから
再代入できるという意味なら可変束縛の方が良いかもね
再代入できるという意味なら可変束縛の方が良いかもね
969デフォルトの名無しさん
2026/08/26(水) 13:09:45.53ID:NsymNjtw970デフォルトの名無しさん
2026/08/26(水) 13:22:13.27ID:C23DyjBn >>963
その比較で「コールバック関数で済む場合もある」と「オブジェクトを渡す方が常に優れている」との違いというのが見解の実質的な対立点かなと。
>>964
同種の機能・役割を果たすことを示すための箱・入れ物としてオブジェクトを使うというのは、(それしか道具立てがない言語なら仕方ないのかもしれないけれど)ちょっと抵抗感があるかな。もし本当にそうすることが必要なら(そのような場合がどの程度あるのかというのも考え方が分かれそう)名前空間なりモジュールなりを使うのが最近の言語の考え方なのかなと。
たまたま同じ型の関数が誤って呼ばれることを防ぐということを型安全性と呼ぶなら、もしそれが本当に深刻な問題になるようなケースなら、Protocolとかインターフェイス的なものを使うことになると思うけれども(ラップはうーん……どうなんだろう)、そんなケースがどの程度あるのかな。少なくとも、ソートのkey引数に指定するのが裸のコールバック関数なのは型安全性に欠けて困ると思ったことはないけど。
その比較で「コールバック関数で済む場合もある」と「オブジェクトを渡す方が常に優れている」との違いというのが見解の実質的な対立点かなと。
>>964
同種の機能・役割を果たすことを示すための箱・入れ物としてオブジェクトを使うというのは、(それしか道具立てがない言語なら仕方ないのかもしれないけれど)ちょっと抵抗感があるかな。もし本当にそうすることが必要なら(そのような場合がどの程度あるのかというのも考え方が分かれそう)名前空間なりモジュールなりを使うのが最近の言語の考え方なのかなと。
たまたま同じ型の関数が誤って呼ばれることを防ぐということを型安全性と呼ぶなら、もしそれが本当に深刻な問題になるようなケースなら、Protocolとかインターフェイス的なものを使うことになると思うけれども(ラップはうーん……どうなんだろう)、そんなケースがどの程度あるのかな。少なくとも、ソートのkey引数に指定するのが裸のコールバック関数なのは型安全性に欠けて困ると思ったことはないけど。
971デフォルトの名無しさん
2026/08/26(水) 13:22:47.79ID:MCEvoZYr972デフォルトの名無しさん
2026/08/26(水) 13:26:32.89ID:sdi3yqbK973デフォルトの名無しさん
2026/08/26(水) 13:26:54.38ID:sdi3yqbK > 意味は
君は
君は
974デフォルトの名無しさん
2026/08/26(水) 13:27:39.42ID:/aytuK8b >>970
型安全性のためのラップはオブジェクトやオブジェクト指向とは独立してそれ以前からある技術です
受け付ける側がラップ型しか受け付けなくなるためラップして持つだけで型安全性が保証されます
生で扱うのはやめましょう
型安全性のためのラップはオブジェクトやオブジェクト指向とは独立してそれ以前からある技術です
受け付ける側がラップ型しか受け付けなくなるためラップして持つだけで型安全性が保証されます
生で扱うのはやめましょう
975デフォルトの名無しさん
2026/08/26(水) 13:37:15.37ID:KzCaqnIk まだやってんの?
手続き型で数十行で済んじゃうコードを
わざわざ複雑にしてw
オブジェクト指向プログラミングってのは
そんな馬鹿な使い方の為にあるんじゃ無いのにw
手続き型で数十行で済んじゃうコードを
わざわざ複雑にしてw
オブジェクト指向プログラミングってのは
そんな馬鹿な使い方の為にあるんじゃ無いのにw
976デフォルトの名無しさん
2026/08/26(水) 13:39:01.55ID:C23DyjBn >>974
そのラップというのは、メンバー・属性として持ついわゆるhas-a的なものという理解でいいのかな。
正直、そこで想定されているような意味での型安全性が深刻な問題になる場合がどの程度あるのかという点についてかなり懐疑的に思っているんだけど。
sorted( some_iterable, key = wrapped_cb ) と書きなさいということでしょ。その方が良いよと言われても、にわかにうんとは言いづらいかな……。
そのラップというのは、メンバー・属性として持ついわゆるhas-a的なものという理解でいいのかな。
正直、そこで想定されているような意味での型安全性が深刻な問題になる場合がどの程度あるのかという点についてかなり懐疑的に思っているんだけど。
sorted( some_iterable, key = wrapped_cb ) と書きなさいということでしょ。その方が良いよと言われても、にわかにうんとは言いづらいかな……。
978デフォルトの名無しさん
2026/08/26(水) 13:40:11.49ID:sdi3yqbK >>975 が手続き型で数十行で書けるってよ、みんなで見ようぜ
979デフォルトの名無しさん
2026/08/26(水) 13:47:55.93ID:fGjq5Quw 引数が値だけの関数だけではなく
引数にミュータブルなオブジェクトの不変参照を渡しても
その時のオブジェクトの値が使われるだけなので問題ない
同様にミュータブルなオブジェクトの可変参照を渡しても
その時のオブジェクトの値が使われるだけであり
変更が反映される対象は使う側が可変参照を渡したオブジェクトだけに限定されるためこれも問題がない
問題が起きるのはグローバル変数の変更だ
使う側から見て指定していないものが変更されるからである
これを副作用と言う
副作用を持たない関数を純粋関数と呼ぶ
オブジェクトがミュータブルかどうかは関係ない話だ
引数にミュータブルなオブジェクトの不変参照を渡しても
その時のオブジェクトの値が使われるだけなので問題ない
同様にミュータブルなオブジェクトの可変参照を渡しても
その時のオブジェクトの値が使われるだけであり
変更が反映される対象は使う側が可変参照を渡したオブジェクトだけに限定されるためこれも問題がない
問題が起きるのはグローバル変数の変更だ
使う側から見て指定していないものが変更されるからである
これを副作用と言う
副作用を持たない関数を純粋関数と呼ぶ
オブジェクトがミュータブルかどうかは関係ない話だ
980デフォルトの名無しさん
2026/08/26(水) 13:55:17.86ID:i+Y8ddFj981デフォルトの名無しさん
2026/08/26(水) 14:05:33.88ID:C23DyjBn 948を書いた者としては、「示された」としてもらえたらよりありがたかったかな。手続型ベースと評価されるのは別に構わないんだけど、一応、オブジェクト指向で設計された組み込みライブラリを利用しているよ。
982デフォルトの名無しさん
2026/08/26(水) 14:10:28.01ID:FMhbZ524983デフォルトの名無しさん
2026/08/26(水) 14:31:13.76ID:5Osq5JzV984デフォルトの名無しさん
2026/08/26(水) 14:35:38.30ID:eQHg//XX C言語でもオブジェクト指向プログラミングできるよ
逆も然り
逆も然り
985デフォルトの名無しさん
2026/08/26(水) 14:36:13.95ID:+7JqDwP8 >>969
それだと、たまたま同じ型の関数が間違ってラップされることも防ぐ義務もあることになるよね?
でそれを実現しちゃうと使う側は新たにラップした型を作れないから拡張できなくなる
今回のようなケースでそんなことする義務とか意味とかあるのかな?
それだと、たまたま同じ型の関数が間違ってラップされることも防ぐ義務もあることになるよね?
でそれを実現しちゃうと使う側は新たにラップした型を作れないから拡張できなくなる
今回のようなケースでそんなことする義務とか意味とかあるのかな?
986デフォルトの名無しさん
2026/08/26(水) 14:42:53.84ID:Ai9eAceU >>985
ある型へとラップした側はその型だと確信しているからそこは全く問題がない
使われる側もある型だけ受け付けると確信しているからそこは全く問題がない
きちんと型付けをすると読みやすくなる
そして型付けシステムが型安全性を保証してくれる
ある型へとラップした側はその型だと確信しているからそこは全く問題がない
使われる側もある型だけ受け付けると確信しているからそこは全く問題がない
きちんと型付けをすると読みやすくなる
そして型付けシステムが型安全性を保証してくれる
987デフォルトの名無しさん
2026/08/26(水) 14:55:41.78ID:sdi3yqbK >>980
はよ書けや
はよ書けや
988デフォルトの名無しさん
2026/08/26(水) 14:58:23.63ID:sdi3yqbK > 975 デフォルトの名無しさん 2026/08/26(水) 13:37:15.37 ID:KzCaqnIk
> まだやってんの?
> 手続き型で数十行で済んじゃうコードを
> わざわざ複雑にしてw
あれあれ〜〜〜??? まだ書けないんですか〜〜〜???
手続き型ってそんなに時間がかかるんですか〜〜〜??? お〜ん?
> まだやってんの?
> 手続き型で数十行で済んじゃうコードを
> わざわざ複雑にしてw
あれあれ〜〜〜??? まだ書けないんですか〜〜〜???
手続き型ってそんなに時間がかかるんですか〜〜〜??? お〜ん?
989デフォルトの名無しさん
2026/08/26(水) 15:02:16.92ID:+7JqDwP8 >>986
じゃ、ある関数にコールバック関数を渡した側はその関数が用途に沿ったものだと確信してるからそこは全く問題がないね
間違いやすいものならともかく今回のような例でラップする型を作ってそれぞれラップしていく手間をかけるほどのメリットは全くないな
じゃ、ある関数にコールバック関数を渡した側はその関数が用途に沿ったものだと確信してるからそこは全く問題がないね
間違いやすいものならともかく今回のような例でラップする型を作ってそれぞれラップしていく手間をかけるほどのメリットは全くないな
990デフォルトの名無しさん
2026/08/26(水) 15:05:25.17ID:g57AhbG+ 横からだけど、>>599は仕様が良く分からんなー
上に書かれている他人のコードは難読だし
上に書かれている他人のコードは難読だし
991デフォルトの名無しさん
2026/08/26(水) 15:11:44.79ID:k59DuRx5992デフォルトの名無しさん
2026/08/26(水) 15:43:10.24ID:UKAdFl7a test
993デフォルトの名無しさん
2026/08/26(水) 15:43:22.12ID:UKAdFl7a 梅準備
994デフォルトの名無しさん
2026/08/26(水) 15:43:37.61ID:UKAdFl7a 梅合わせ
995デフォルトの名無しさん
2026/08/26(水) 15:43:53.85ID:UKAdFl7a うめろん
996デフォルトの名無しさん
2026/08/26(水) 15:44:06.79ID:UKAdFl7a 終了
997デフォルトの名無しさん
2026/08/26(水) 15:44:17.78ID:UKAdFl7a 糸冬
998デフォルトの名無しさん
2026/08/26(水) 15:45:04.44ID:UKAdFl7a999デフォルトの名無しさん
2026/08/26(水) 15:45:59.95ID:UKAdFl7a Rustはオブジェクト指向言語ではないωωω
1000デフォルトの名無しさん
2026/08/26(水) 15:46:13.81ID:UKAdFl7a doubt!
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 13日 1時間 8分 11秒
新しいスレッドを立ててください。
life time: 13日 1時間 8分 11秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【X】高市首相、米兵逮捕「極めて遺憾」 [少考さん★]
- 「日本は刑罰が緩いと聞いた」と供述 中野2億円腕時計窃盗事件 チリ国籍の男2人再逮捕 [♪♪♪★]
- 「運動音痴にとって、体育の授業は『公開処刑』」 運動嫌いを生みだす日本の教育の問題点★2 [征夷大将軍★]
- 夫婦の性行為は義務なのか 「したくない」と言ったら?法学者の見解 [おっさん友の会★]
- 【速報】高市首相の「寝てない」にSNS賛否「命がけで頑張っている」「アピールはもうけっこう」 海外メディアも注目 (共同通信) [少考さん★]
- 【沖縄】米海兵隊の20歳男を強盗殺人容疑で逮捕 那覇市のホテルで女性殺害し財布など奪った疑い 「私は知りません」容疑否認 [ぐれ★]
- 【高市祭】だんじり、加速したまま交差点に突っ込み、曲がり切れず横転。11人病院送り。横転は祭りの華か [219241683]
- 小泉防衛相「言語道断」 [377482965]
- 【悲報】真美子、大分変わってしまうwwwwwwwwwwwwwwwwwwww [398059782]
- 日本料理、アジアで一番不味いとの評価頂く。→日本人なぜか発狂 [668024367]
- 【悲報】高市洋一、2ちゃん発祥の「六韜」デマで岩屋を批判→総ツッコミを食らい「記述はないが示唆する文章はある」と釈明 [834922174]
- 【悲報】日本人、気づき始める「あれ?俺たちなんか貧しくなってね?」wwwwwwwwwwwwwwwwwwwwwwww [379664288]