Qiita 7 - キータぞ、来たぞ、キータだぞー (768レス)
1-

87
(2): 2025/09/27(土)00:25 ID:XX0uOJLH(1/4) AAS
>長さ0はstart..startになって特別扱いすることなく自然にそのまま扱える
 
長さ0を表現するのにstartが具体的な値持ってて自然てどういう理屈?
88
(1): 2025/09/27(土)00:31 ID:lQv27qFK(1) AAS
>>87
長さ1や長さ2がstart違ってあちこちにあるように
長さ0もstart違ってあちこちに存在する
89: 2025/09/27(土)00:43 ID:XX0uOJLH(2/4) AAS
>>88
Pascalでstartの違う長さ0表して便利な例挙げてみて
90
(2): 2025/09/27(土)00:55 ID:B/IRYC2K(1/4) AAS
>>87
Rustの..は性質の良い半開区間なので、
例えばstart..endを途中のmiddleの位置で分割すると、start..middleとmiddle..endの二つに綺麗に分かれる性質も持っているよ。
そしてそのmiddleの決定算出結果が処理内容や処理状況によっては、たまたまstartと一致することも出てくる。
その時、start..middleとmiddle..endの二つは、start..startとstart..endの二つに分かれて前者は長さ0になるね。
Rustでのプログラミングでも実際にこれはよく起きるよ。
91
(2): 2025/09/27(土)01:43 ID:XX0uOJLH(3/4) AAS
>>90
区間の長さが0だった話じゃなくて、長さ0を表現するのにstartが具体的な値持ってるのはどうなのと聞いています。
92
(1): 2025/09/27(土)01:48 ID:XX0uOJLH(4/4) AAS
閉区間と半開区間のどちらにメリットがある場合もあり、Rustも閉区間をサポートしてるのに半開区間のみを持ち上げてるのは見識が狭いな。
93: 2025/09/27(土)02:17 ID:B/IRYC2K(2/4) AAS
>>91
区間には必ずスタート位置を伴いますね。
そこから長さが2だったり長さが1だったり長さが0だったりするわけです。
長さ0の時だけスタート位置が無いのは不自然でしょう。

>>92
良い性質を備えていてメリットがあるのは半開区間でしょう。
Rustの標準APIは区間分割split_atなどでも半開区間を前提として処理されます。
94
(1): 2025/09/27(土)02:20 ID:u3EkYZLQ(1) AAS
『fast inverse square root (高速逆平方根) のようなトリックまとめ』
 
未定義動作コードの見本市みたいな記事。
C言語知りませんアピールか。
95: 2025/09/27(土)07:25 ID:rUQ4UupW(1) AAS
C言語なんて動きゃいいんだよ動きゃ
96: 2025/09/27(土)08:53 ID:ItgajmGE(1) AAS
動きゃいいんだよ動きゃなんて言語でカーネルを作ってほしくない
97: 2025/09/27(土)12:15 ID:HCtgOBXK(1) AAS
古いのから新しいのまであらゆるCPUで動きゃいいんだよ動きゃ
98: 2025/09/27(土)13:57 ID:HvNJXk8w(1) AAS
>動きゃいいんだよ動きゃ
 
動くかわからん未定義動作のコードにこういうこと言う奴は馬鹿
99: 2025/09/27(土)16:57 ID:1KNVq9e2(1) AAS
特定のCPU/GPU環境と断ってる
C言語仕様と特定CPU仕様を履き違えて未定義動作って言いたいだけの馬鹿の一つ覚え
100
(1): 2025/09/27(土)17:02 ID:mMYsldco(1) AAS
CとC++はこの手の気持ち悪いオジサン湧くからほんと無理
101: 2025/09/27(土)17:19 ID:CHztWjoA(1/2) AAS
>>94
その記事「特定のCPU/GPU環境」を書かないのが片手落ちやな
102
(1): 2025/09/27(土)20:09 ID:16nWnOPC(1) AAS
>>100
直前に出たRustとC/C++の違いは
C/C++はお前のようなバカにも理解できるように分かりやすく話してあげてることだぞ
103
(1): 2025/09/27(土)20:36 ID:jktxSQ82(1/4) AAS
>>77
半開区間で書く方が便利な場合があることを誰も否定してはいないだろう。一方、閉区間で
書く方が便利な場合もある。例えば1からnまでの自然数を表示したいときがそうだが、
半開区間しかないPythonではfor i in range(1, n + 1): print(i)なんてひねくれた書き方を
強要されるし効率も悪い(Pythonで効率を云々しても意味ないが)。だから、半開区間と
閉区間の両方の記法を提供するのが良い。

半開区間を表すのに左右対称な..を使うのは紛らわしいので不適切。Pascalなどで..で閉区間を
表す慣用が定着していたにもかかわらず、..で半開区間を表す愚行を最初にやらかしたのはDか。
その前車の轍をC#, Go, Rustが踏んでしまった。特に.NET兄弟のF#とPowerShellが..を閉区間で
既に使っていたのにC#が半開区間を表すのに..を導入してしまったのは大きな誤りだった。
省1
104: 2025/09/27(土)20:44 ID:CHztWjoA(2/2) AAS
閉区間イラネエ
105
(1): 2025/09/27(土)21:04 ID:h+m11Qj8(1/3) AAS
閉区間を表す記号を用意すべきかどうかについてはそれぞれ考え方の違いがあるんだなと思うが、.. は左右対称だから閉区間にすべきというのは正直よく分からん理由付けだわ。Pascalだってそんな理由で .. を閉区間の記号にしたわけではないと思うが。
106
(1): 2025/09/27(土)21:10 ID:B/IRYC2K(3/4) AAS
>>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)は半開区間であり、半開区間を基本とする言語が多数派だね。
1-
あと 662 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s