Qiita 7 - キータぞ、来たぞ、キータだぞー (289レス)
Qiita 7 - キータぞ、来たぞ、キータだぞー http://mevius.5ch.net/test/read.cgi/tech/1757733847/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
100: デフォルトの名無しさん [sage] 2025/09/27(土) 17:02:10.01 ID:mMYsldco CとC++はこの手の気持ち悪いオジサン湧くからほんと無理 http://mevius.5ch.net/test/read.cgi/tech/1757733847/100
101: デフォルトの名無しさん [sage] 2025/09/27(土) 17:19:12.43 ID:CHztWjoA >>94 その記事「特定のCPU/GPU環境」を書かないのが片手落ちやな http://mevius.5ch.net/test/read.cgi/tech/1757733847/101
102: デフォルトの名無しさん [sage] 2025/09/27(土) 20:09:28.90 ID:16nWnOPC >>100 直前に出たRustとC/C++の違いは C/C++はお前のようなバカにも理解できるように分かりやすく話してあげてることだぞ http://mevius.5ch.net/test/read.cgi/tech/1757733847/102
103: デフォルトの名無しさん [] 2025/09/27(土) 20:36:16.39 ID:jktxSQ82 >>77 半開区間で書く方が便利な場合があることを誰も否定してはいないだろう。一方、閉区間で 書く方が便利な場合もある。例えば1からnまでの自然数を表示したいときがそうだが、 半開区間しかないPythonではfor i in range(1, n + 1): print(i)なんてひねくれた書き方を 強要されるし効率も悪い(Pythonで効率を云々しても意味ないが)。だから、半開区間と 閉区間の両方の記法を提供するのが良い。 半開区間を表すのに左右対称な..を使うのは紛らわしいので不適切。Pascalなどで..で閉区間を 表す慣用が定着していたにもかかわらず、..で半開区間を表す愚行を最初にやらかしたのはDか。 その前車の轍をC#, Go, Rustが踏んでしまった。特に.NET兄弟のF#とPowerShellが..を閉区間で 既に使っていたのにC#が半開区間を表すのに..を導入してしまったのは大きな誤りだった。 Dはほぼ死語と化したから、..で半開区間を表す不適切な記法も消え去るべきだな。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/103
104: デフォルトの名無しさん [sage] 2025/09/27(土) 20:44:14.86 ID:CHztWjoA 閉区間イラネエ http://mevius.5ch.net/test/read.cgi/tech/1757733847/104
105: デフォルトの名無しさん [sage] 2025/09/27(土) 21:04:56.86 ID:h+m11Qj8 閉区間を表す記号を用意すべきかどうかについてはそれぞれ考え方の違いがあるんだなと思うが、.. は左右対称だから閉区間にすべきというのは正直よく分からん理由付けだわ。Pascalだってそんな理由で .. を閉区間の記号にしたわけではないと思うが。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/105
106: デフォルトの名無しさん [] 2025/09/27(土) 21:10:34.65 ID:B/IRYC2K >>103 多くの言語が半開区間を基本として扱っている理由は、半開区間だけが優れた性質を備えていてプログラミングに適しているためだよ。 半開区間だけが、start~endは長さ start - endを示し、startから長さnはstart~(start + n)になり、長さ0をstart~startで示すことができ、start~endをstart~middleとmiddle~endの2つに分割できる。 間違えた古い言語に習うことなく、半開区間をstart:endやstart..endなど簡素に記述するそれらの言語C# Go Rust Pythonなどが正しいよ。 JavaScriptもarr.slice(start, end)は半開区間であり、半開区間を基本とする言語が多数派だね。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/106
107: デフォルトの名無しさん [sage] 2025/09/27(土) 21:12:07.66 ID:PCqkgGFG >特定のCPU/GPU環境と断ってる >C言語仕様と特定CPU仕様を履き違えて未定義動作って言いたいだけの馬鹿の一つ覚え 記事のコードがダメのはC言語の仕様として未定義動作と規定されてることをやってるからで特定CPU関係ないよ。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/107
108: デフォルトの名無しさん [] 2025/09/27(土) 21:17:11.52 ID:jktxSQ82 >>105 数学での表記も閉区間と開区間の記号は左右対称で、半開区間は左右非対称。 閉区間[a, b] 開区間(a, b) 左半開区間(a, b] 右半開区間[a, b) ..は閉区間にしか見えない。右半開区間は..<か..~にすべきなのにたった1文字をケチって バグを呼び込むのは愚行としか言いようがない。 >>106 for i in range(1, n + 1): print(i)がプログラミングに適しているとでも? http://mevius.5ch.net/test/read.cgi/tech/1757733847/108
109: デフォルトの名無しさん [] 2025/09/27(土) 21:29:49.40 ID:B/IRYC2K >>108 それら現在メジャーな各言語の、range(srart, end)もslice(start, end)もstart:endもstart..endも全て半開区間を意味しているため、間違える人はいなくて、初心者もすぐ理解して誰も困っていないよ。 0からn個がrange(0, n) 1からn個がrange(1, n + 1) 2からn個がrange(2, n + 2) とてもわかりやすくなっているね。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/109
110: デフォルトの名無しさん [] 2025/09/27(土) 21:50:13.15 ID:jktxSQ82 >>109 そんなものがわかりやすいわけないだろ。2からnまでの自然数を表示したい場合にはn - 1個だから 右端はn - 1 + 2 = n + 1でrange(2, n + 1)なんていちいち計算するのかw mからn個ならC#のEnuemerable.Rangeが分かりやすい。 0からn個がEnuemerable.Range(0, n) 1からn個がEnuemerable.Range(1, n) 2からn個がEnuemerable.Range(2, n) 理解していなくて間違えるのではなく、理解しているが左右対称の見た目につられてうっかり間違えやすい。 それなのにわずか1文字をケチるのは愚行。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/110
111: デフォルトの名無しさん [sage] 2025/09/27(土) 21:54:38.07 ID:h+m11Qj8 ① 多用される半開区間を少ない記号で書けるよう .. を半開区間の記号にしました。 ② Pascal以来の伝統を重視して .. を閉区間の記号にしました。 ③ 閉区間の記号は数学記号に倣って左右対称であるべきなので .. を閉区間の記号にしました。 自分は、説得力を感じる度合いとしては① >= ② >>> ③ かな。③ははっきり言ってパラノイアの戯言レベルの物言いにしか思えない。 また、半開区間の記号を ..< とか ..〜 のような冗長で読みにくい記号にする前提なら、それが .. を閉区間の記号にしたくない最大の理由になるかな。Pascalのように閉区間の記号しか設けていないのなら仕方ないが、開区間と閉区間の記号を両方用意するなら、開区間の記号の方をスッキリした記号にして欲しい。Rubyの .. と... で許容範囲ギリギリくらい。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/111
112: デフォルトの名無しさん [] 2025/09/27(土) 22:08:37.36 ID:jktxSQ82 >>111 意味がある記号を書くのを冗長とは言わない。消すのを愚行という。Pythonが意味がある{}を消したのも愚行。 そんなに文字数を減らしたいなら半開区間の記号を.~にしたらどうか。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/112
113: デフォルトの名無しさん [sage] 2025/09/27(土) 22:45:20.51 ID:fM3CYn91 > 閉区間[a, b] 開区間(a, b) 左半開区間(a, b] 右半開区間[a, b) これでいうとrust方式は一貫性の点で詰んでないか? 閉区間[a, b] a..=b 開区間(a, b) ??? 右半開区間[a, b) a..b 左半開区間(a, b] ??? pascal方式だと以下のように拡張しうる余地がある 閉区間[a, b] a..b 開区間(a, b) a<..<b 右半開区間[a, b) a..<b 左半開区間(a, b] a<..b http://mevius.5ch.net/test/read.cgi/tech/1757733847/113
114: デフォルトの名無しさん [sage] 2025/09/27(土) 23:23:15.70 ID:h+m11Qj8 このスレでパラノイアの妄執を開陳されてもなぁ。 ..< とか <..< とかで「一貫してるぞ、わーい」って喜べるの貴方くらいだよ。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/114
115: デフォルトの名無しさん [sage] 2025/09/27(土) 23:40:53.38 ID:xS2lIG/M Rustは非常にシンプルで 最も多用されて使いやすい半開区間 従来 i = 0 ; i < n を 0..n と表記 稀に用いられる閉区間 従来 i = 0 ; i <= n を 0..=n と表記 このようにシンプルに従来と対応している この2種類しかないため逆に取り違えて誤用することもない http://mevius.5ch.net/test/read.cgi/tech/1757733847/115
116: デフォルトの名無しさん [] 2025/09/28(日) 00:57:38.05 ID:aU9wcwp7 >>114 108と113は別人だから、少なくとも2人はいるな。左右対称の..が閉区間に見えるのが自然な感覚なのに、 それに反して半開区間を割り当てているのが正解だなんて言い張っている方がカルト教団だよ。 数学に固執する本当のパラノイアはJuliaの作者だな。文字列連結演算子には+を使うのが自然な感覚なのに、 数学では+は可換演算子だから不適切で、*は非可換演算子の場合もある(例:行列演算)から*を使うのが 適切と言い張っている。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/116
117: デフォルトの名無しさん [sage] 2025/09/28(日) 01:05:52.83 ID:IhNFMRKQ >>115 合理的だな http://mevius.5ch.net/test/read.cgi/tech/1757733847/117
118: デフォルトの名無しさん [] 2025/09/28(日) 01:15:35.68 ID:aU9wcwp7 >>115 <は右の値を含まないことが一目瞭然だが、..はそうではなく右の値を含むようにしか見えない。 http://mevius.5ch.net/test/read.cgi/tech/1757733847/118
119: デフォルトの名無しさん [sage] 2025/09/28(日) 01:22:45.65 ID:OpklV7ok 対称なstart:endで半開区間を示す言語も多いけどそれには文句をつけずに なぜかstart..endだけに文句をつけているから単なるキチガイだと思う http://mevius.5ch.net/test/read.cgi/tech/1757733847/119
120: デフォルトの名無しさん [] 2025/09/28(日) 01:28:15.16 ID:aU9wcwp7 >>119 :で半開区間を表す言語なんてあったっけ? http://mevius.5ch.net/test/read.cgi/tech/1757733847/120
121: デフォルトの名無しさん [sage] 2025/09/28(日) 01:34:38.77 ID:exR0IU1B マイクロソフトまでもがC#8.0でついに導入した範囲構文を 「start..end」と記述して半開区間を意味することにしちゃったからね 半開区間が多数派だよ http://mevius.5ch.net/test/read.cgi/tech/1757733847/121
122: デフォルトの名無しさん [sage] 2025/09/28(日) 02:06:41.24 ID:OkDUf4Ut >>102 気持ち悪いから絡んでくんなRust信者 http://mevius.5ch.net/test/read.cgi/tech/1757733847/122
123: デフォルトの名無しさん [] 2025/09/28(日) 02:22:58.32 ID:/6w9hfWi 現在メジャーに使われているプログラミング言語で調査してみた start:endやstart..endと書いた時にどちらを意味するか? 【閉区間】Ruby 【半開区間】C# Go Python Rust http://mevius.5ch.net/test/read.cgi/tech/1757733847/123
124: デフォルトの名無しさん [] 2025/09/28(日) 03:25:05.02 ID:1+QqAxps Rubyでも半開区間はstart...endと左右対称な形で書くよ 「半開区間を左右対称な形に記述するな!」と主張してる>>108は頭おかしい http://mevius.5ch.net/test/read.cgi/tech/1757733847/124
125: デフォルトの名無しさん [sage] 2025/09/28(日) 06:17:53.02 ID:riDxLC/x 彼の主張する ・閉区間はPascalと同じstart..end ・半開区間は左右非対称な記号列 を満たす言語はそもそも存在するの? Pascal自体は半開区間が存在しないから満たさない >>123の各言語はRubyを含めて半開区間が左右対称な記号列 http://mevius.5ch.net/test/read.cgi/tech/1757733847/125
126: デフォルトの名無しさん [] 2025/09/28(日) 06:43:10.95 >>91 >>>90 >区間の長さが0だった話じゃなくて、長さ0を表現するのにstartが具体的な値持ってるのはどうなのと聞いています。 これすげえな 多重ループすら見たことないのか http://mevius.5ch.net/test/read.cgi/tech/1757733847/126
127: デフォルトの名無しさん [sage] 2025/09/28(日) 08:23:09.99 ID:0sdmbxgV ここの住人もQiitaと同レベルだよな http://mevius.5ch.net/test/read.cgi/tech/1757733847/127
128: デフォルトの名無しさん [sage] 2025/09/28(日) 08:34:28.79 ID:SzcnPpn2 争いは同じレベルの者同士でしか発生しないからな http://mevius.5ch.net/test/read.cgi/tech/1757733847/128
129: デフォルトの名無しさん [sage] 2025/09/28(日) 13:02:57.89 ID:iPJCP/07 現行の言語のデザインに何も疑問を持たないのはそれだけの人 http://mevius.5ch.net/test/read.cgi/tech/1757733847/129
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 160 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s