新しいものを表示
orange さんがブースト

IComparable インターフェイス (System) | Microsoft Docs
docs.microsoft.com/ja-jp/dotne

え、マジで現代に静的型付きなのに三方比較を int で返す言語があったの!?
それはごめんなさい、 C# のマトモでなさを見誤ってました

C# はそこに関してはなぜか型がゆるふわだけど、別に長くないよ?>< むしろオレンジの書き方の方が冗長><

orange さんがブースト

や、だってまさか言いたいことの本題が「C# の三方比較クソ長ったらしすぎ」だったとは思いませんよ

じゃあ最初から「そんな心配しなくてもC++では宇宙船演算子が型をきっちりとした実装で導入されるからそんな心配しなくても大丈夫だよ!」で50分の謎のやり取りしないで済んだじゃん?><

orange さんがブースト

はい、「<=>」を実装している沢山ある言語のなかでも静的型付きなのは C++ だけでしたね

orange さんがブースト

少なくともwikipedia日本語版の記事の例示だと型がゆるふわな環境以外での宇宙船演算子の実装事例が書いて無いけど、型がきっちりな宇宙船演算子導入事例って具体的にどんなのがあるの?><

orange さんがブースト

元ネタつったって <=> を実装している言語なんて沢山あるって話ですよ

オレンジ語っぽさをがんばってなくすなら
「宇宙船演算子って簡潔に書けて便利そう。でも、型がゆるふわで整数型で返すような実装はごめんだなぁ」
って言うことを最初に書いた><
そしたら「Rustはハイカラなので順序はちゃんと型で返す!!!」って話が返ってきて「そういう話をしてるんじゃないんだけど?><;」ってなった><

mstdn.nere9.help/@orange_in_sp

"宇宙船演算子、"
"こういう風に静的型付けの環境でこういう風にするのであれば"
↑つまり型がしっかりしてるならば

"普通に便利なのではかもって気がしてる><"
"がも"が"ではかも"になってて意味不明だけど、つまり元ネタには型の問題があるけどそれさえクリアできれば普通に便利かもって言ってる><

orange さんがブースト

宇宙船演算子、こういう風に静的型付けの環境でこういう風にするのであれば普通に便利なのではかもって気がしてる><

ちゃんと型検査される、『「どっちがでかいの?ていうか同じ?」型』>< gist.github.com/orange-in-spac

だから、短く書けたら便利だから宇宙船演算子欲しい(けども整数型で帰ってくるなんてキモイ仕様は絶対ヤダ)って言ってるんじゃん!?><

orange さんがブースト

それは「ThreeWayComparison.Compare(a, b)」と「a <=> b」を比べるから落差が大きいのであって、言語仕様の問題では?

宇宙船演算子の話が出てたからその話をしたんじゃん!?><

orange さんがブースト
orange さんがブースト

宇宙船演算子 - Wikipedia ja.wikipedia.org/wiki/%E5%AE%8

”Perl (数値のみ)[1]、PHP (バージョン7以上)[2]、Ruby[3]、Apache GroovyはA < B、A == B、A > Bのケースでそれぞれ-1、0、1を返す実装契約を規定している。”
みたいな実装だと型がゆるふわで気持ち悪いけど、ちゃんと型がかっちりしてる言語で導入すれば、宇宙船演算子が返すのが『「順序はこうだよ!」って型』を返すので安全だし、安全なまま短く書くメリットが出ていいじゃん!?><
っていう話をしてる><

よく知らないけどRustにはそういう演算子(なり予約語なり)があるらしい?><

スレッドを表示

switch (a <=> b)
{
 case (OrderIs.LessThanRight)
  {
   //以下略
みたいに書けるようにしたいって言ってる><
(この場合<=>が返すのはOrderIs型><)

古いものを表示
:realtek:

思考の /dev/null