新しいものを表示
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型><)

もしかしなくても誰も読んでない><

よくわかんないけど、オレンジの主張は
a <=>b ってすれば
比較して順序な型返す関数(a,b) って書いたのと同じになってくれる ようになって欲しいって意味だけどなってるのかも?><

orange さんがブースト

doc.rust-lang.org/stable/std/c

もう世界で百億人くらい同じこと考えていて綺麗な言語は既にそうなっているので、そうなっていないレガシー言語がしょーもないとかいう話をグダグダしていること自体がしょーもない

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

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

orange さんがブースト

UFO演算子を聞いたときは、ふざけてんのかって思った。

Adaみたいにend ifとかend loopとかend hoge的に言語仕様で書けるようにすればよくね?><
Ada Programming/Subprograms - Wikibooks, open books for an open world en.wikibooks.org/wiki/Ada_Prog

orange さんがブースト

}//なんとか

だと、ズレてても検出できないんですよね。

while(cond1) {
while(cond2) {
foo();
}//while
if(cond3) {
bar();
}//if
}//while

while(cond) {
while(cond2) {
/* このあたりでごっそりコードを消したが、うっかり消しすぎた */
bar();
}//if
}//while

になっていても、コンパイルが通ってしまう。
で、ブロックの中身がデカかったらミスマッチに気付けない。

orange さんがブースト

case - esac はじめてきいた

}//なんとか
ってしたらいいのではと思った

オレンジはBASICから入ってPascalに移行した流れのあれで慣れてるので <> でも != でもどっちでも違和感ないかも・・・><

orange さんがブースト

不等号を並べてぶつける事自体がなんか生理的に受け付けません

orange さんがブースト

ちなみに深い理由は何もないですが、vbaの<>を見るとなんか体調が悪くなります

そこまではしないけど、Pascal好きとしては色つきのエディタならばbegin endの方が見やすく感じてる><;

古いものを表示
:realtek:

思考の /dev/null