公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part26
https://mevius.5ch.net/test/read.cgi/tech/1726838318/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part27
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/12/02(月) 22:32:50.31ID:D+1pIyvG491デフォルトの名無しさん
2025/03/14(金) 23:24:58.18ID:Jz6kOrmc boundsは境界で正しい
他の候補はない
Type1: Trait2 Type1の取れうる型のうちTrait2がその境界となっている
Trait3: Trait4 Trait3の…(同様)
つまりトレイトにより境界を引いている
このように各々意味が異なる
境界 bounds
限界 limitation
制約 constraints
他の例
array-bounds checking 配列境界検査
Scalaのupper type bounds 上限境界
Scalaのlower type bounds 下限境界
他の候補はない
Type1: Trait2 Type1の取れうる型のうちTrait2がその境界となっている
Trait3: Trait4 Trait3の…(同様)
つまりトレイトにより境界を引いている
このように各々意味が異なる
境界 bounds
限界 limitation
制約 constraints
他の例
array-bounds checking 配列境界検査
Scalaのupper type bounds 上限境界
Scalaのlower type bounds 下限境界
492デフォルトの名無しさん
2025/03/14(金) 23:58:17.86ID:ArFvjw95 際立ちますね
この題材は踏み絵になる
この題材は踏み絵になる
493デフォルトの名無しさん
2025/03/15(土) 00:33:27.71ID:MW+uPLNw boundというと結び付いてる・紐付いているといった意味合い
日本語で境界というと、外と内といった「堺目」という意味合いが強い
自分はトレイト境界という表現に慣れてしまったのでそこまで違和感はないけど、訳としては不適当だと思う
余談だけどPythonとRustのFFIに使われるPyO3というクレートがあって、そこでは Bound という型が出てくる
これはPythonのGILに紐付いている意味合いで、trait boundのboundと同じ意味合い
日本語で境界というと、外と内といった「堺目」という意味合いが強い
自分はトレイト境界という表現に慣れてしまったのでそこまで違和感はないけど、訳としては不適当だと思う
余談だけどPythonとRustのFFIに使われるPyO3というクレートがあって、そこでは Bound という型が出てくる
これはPythonのGILに紐付いている意味合いで、trait boundのboundと同じ意味合い
494デフォルトの名無しさん
2025/03/15(土) 00:51:34.13ID:kGvPW5zF 「訳がおかしい」と言ってるアホ達が代案を出さないことからも境界がぴったりな言葉
トレイトで境界を引いている
トレイトで境界を引いている
495デフォルトの名無しさん
2025/03/15(土) 00:56:44.33ID:zVPlAU0P496デフォルトの名無しさん
2025/03/15(土) 01:20:52.90ID:kGvPW5zF boundsに制約なんて意味はない
trait boundsも、ある一定内の数値や、配列のインデックスなどのbounds checkingと同じく境界が定まる
trait boundsも、ある一定内の数値や、配列のインデックスなどのbounds checkingと同じく境界が定まる
497デフォルトの名無しさん
2025/03/15(土) 01:23:20.85ID:24RSx77o 訳語を探すそもそものアプローチというか考え方が間違ってるんだよな
498デフォルトの名無しさん
2025/03/15(土) 01:27:28.34ID:yH3qrd2j お前らそんなに和訳やる気あんならtatsuya6502のケツひっぱたいてこいや
499デフォルトの名無しさん
2025/03/15(土) 01:40:23.59ID:kGvPW5zF 「制約」という違和感ありまくりの間違った単語を使っているアホどもは、
例えばあるクラスに対してその基底クラスやスーパークラスを「制約」だと捉えているのか?
例えばあるクラスに対してその基底クラスやスーパークラスを「制約」だと捉えているのか?
500デフォルトの名無しさん
2025/03/15(土) 01:47:56.77ID:t2/vXXRn 意味的にはNapsterの水平線に近い
501デフォルトの名無しさん
2025/03/15(土) 01:58:38.26ID:CnlaKfFr トレイト境界とかいう和製英語やめて特性規定(特性を持ってますよって規定な)とかにしようや。省略しないなら特性保持規定、特性保有規定
ジェネリック型がある特性を持つという規定があるから、その特性を実装するっていう文なら自然だし
ジェネリック型がある特性を持つという規定があるから、その特性を実装するっていう文なら自然だし
502デフォルトの名無しさん
2025/03/15(土) 01:59:20.63ID:CnlaKfFr しまった、ジェネリックなって書いてしもうたな
503デフォルトの名無しさん
2025/03/15(土) 01:59:55.45ID:8rRdOox4 >>489
プロポですねわかります
プロポですねわかります
504デフォルトの名無しさん
2025/03/15(土) 02:11:53.31ID:kGvPW5zF505デフォルトの名無しさん
2025/03/15(土) 02:27:02.81ID:aXarc3PA 集合論的な意味での境界だな
ベン図のイメージ
T: EqはEqを実装する型の領域
T: CopyはCopyを実装する型の領域
T: Eq + CopyはT: EqとT: Copyが重なった領域
ベン図のイメージ
T: EqはEqを実装する型の領域
T: CopyはCopyを実装する型の領域
T: Eq + CopyはT: EqとT: Copyが重なった領域
506デフォルトの名無しさん
2025/03/15(土) 06:28:21.70ID:ub1zWmmn507デフォルトの名無しさん
2025/03/15(土) 09:13:26.13ID:M+mqoQUv 数学だと制約に相当するんでは?
三角形の内二等辺三角形があるのは条件を満たしているものだけ
プログラムも機能が充実するとイメージとは真逆で制約が強くなっていることになる
出来ることが増える=制約されてる
void*ポインターが無制限で型が付くと型の制限がある
三角形の内二等辺三角形があるのは条件を満たしているものだけ
プログラムも機能が充実するとイメージとは真逆で制約が強くなっていることになる
出来ることが増える=制約されてる
void*ポインターが無制限で型が付くと型の制限がある
508デフォルトの名無しさん
2025/03/15(土) 09:15:25.47ID:M+mqoQUv これはずっと考えていたことで今急にひらめいたとかじゃない
509デフォルトの名無しさん
2025/03/15(土) 09:16:05.70ID:tr5ODwiQ >>495
一般的に constraints の訳語として「制約」をあてるのでこの場合には好ましいとは言えない。
ただ Haskell で constraints と呼んでいるものと Rust で bounds と呼んでいるものに類似点があるかというとまあ結構あるとは思う。
一般的に constraints の訳語として「制約」をあてるのでこの場合には好ましいとは言えない。
ただ Haskell で constraints と呼んでいるものと Rust で bounds と呼んでいるものに類似点があるかというとまあ結構あるとは思う。
510デフォルトの名無しさん
2025/03/15(土) 09:23:16.52ID:M+mqoQUv 二つの辺の長さが等しいと言う制約のと
○○という関数を持っていると言う制約
○○という関数を持っていると言う制約
511デフォルトの名無しさん
2025/03/15(土) 09:24:31.14ID:qQFYiVQo512デフォルトの名無しさん
2025/03/15(土) 09:31:26.54ID:M+mqoQUv カタカナでいいんじゃないかw
英語見た場合に納得できる
英語見た場合に納得できる
513デフォルトの名無しさん
2025/03/15(土) 09:43:00.89ID:M+mqoQUv こういう時は何故かHaskell = 圏論勢が出てこない
514デフォルトの名無しさん
2025/03/15(土) 09:44:01.84ID:MW+uPLNw >>506
英語版の Rust book だと「型やライフタイムの使われ方を制限する (to restrict) 」とあるよ
Trait and lifetime bounds provide a way for generic items to restrict which types and lifetimes are used as their parameters.
数学とかプログラミングと関係ない、普通の言葉としての bound は元は「紐で縛る」から来てる
制限、制約、境界といった意味はそこからの派生
英語版の Rust book だと「型やライフタイムの使われ方を制限する (to restrict) 」とあるよ
Trait and lifetime bounds provide a way for generic items to restrict which types and lifetimes are used as their parameters.
数学とかプログラミングと関係ない、普通の言葉としての bound は元は「紐で縛る」から来てる
制限、制約、境界といった意味はそこからの派生
515デフォルトの名無しさん
2025/03/15(土) 09:53:00.21ID:MW+uPLNw そもそも >>506 だって制約だと思う
ジェネリクス関数の中で呼べるメソッドが増えることに注目してるようだけど、利用側から見ればその関数に渡せる型について制限が増えるでしょ
ジェネリクス関数の中で呼べるメソッドが増えることに注目してるようだけど、利用側から見ればその関数に渡せる型について制限が増えるでしょ
516デフォルトの名無しさん
2025/03/15(土) 10:02:10.90ID:ub1zWmmn517デフォルトの名無しさん
2025/03/15(土) 10:28:22.62ID:M+mqoQUv518デフォルトの名無しさん
2025/03/15(土) 10:35:19.38ID:qQFYiVQo >>506
トレイト視界にすれば良かったんじゃね
トレイト視界にすれば良かったんじゃね
519デフォルトの名無しさん
2025/03/15(土) 10:37:07.82ID:e4F+UdWA トレイトバウンズでええやん
520デフォルトの名無しさん
2025/03/15(土) 10:38:12.12ID:M+mqoQUv 機能実装=制約
情報量が少ないのが自由度が大きくなりがち
確率だとしても明日の天気の状況が全くわからないとすると何の制約もなく平等に各状態がある
天気予報などから明日は降水確率70%などと情報を得ると確率がかわり偏る
情報学で言うエントロピーが増大した状況
ビットの0と1が等しい確率で出てくるような何ら情報の無い状況がエントロピーが少ない
情報量が少ないのが自由度が大きくなりがち
確率だとしても明日の天気の状況が全くわからないとすると何の制約もなく平等に各状態がある
天気予報などから明日は降水確率70%などと情報を得ると確率がかわり偏る
情報学で言うエントロピーが増大した状況
ビットの0と1が等しい確率で出てくるような何ら情報の無い状況がエントロピーが少ない
521デフォルトの名無しさん
2025/03/15(土) 10:42:25.48ID:qQFYiVQo522デフォルトの名無しさん
2025/03/15(土) 10:43:38.21ID:qQFYiVQo523デフォルトの名無しさん
2025/03/15(土) 10:50:01.91ID:ub1zWmmn >>521
それは真逆の視点だから真逆の結果となっている
型に対するトレイト境界なのだから型の視点で見るべき
トレイト境界がAnyしかない初期状態が最も制約されていて機能がほとんど使えない不自由な状態
そこからトレイト境界を増やせば増やすほど実行できる機能が増えて自由度が増していく
それは真逆の視点だから真逆の結果となっている
型に対するトレイト境界なのだから型の視点で見るべき
トレイト境界がAnyしかない初期状態が最も制約されていて機能がほとんど使えない不自由な状態
そこからトレイト境界を増やせば増やすほど実行できる機能が増えて自由度が増していく
524デフォルトの名無しさん
2025/03/15(土) 10:51:10.99ID:M+mqoQUv 自由度なんて何も考えなくても理解出来るだろ…
思い込みを直す機会だぞ
なんなら大学に行って数学と情報学を学べばいい
思い込みを直す機会だぞ
なんなら大学に行って数学と情報学を学べばいい
525デフォルトの名無しさん
2025/03/15(土) 10:52:21.41ID:ub1zWmmn526デフォルトの名無しさん
2025/03/15(土) 10:54:27.10ID:ub1zWmmn527デフォルトの名無しさん
2025/03/15(土) 11:00:14.62ID:M+mqoQUv >>526
学生と言うクラスに対してそれが三角形なのかと言う問いはおかしく見えるが
学生であり三角形でもある可能性もある
トレイトが実装されていなくても同等の機能が実装されている可能性もある
一概にトレイトが実装されているから高機能であると言う論は当てはまらない
ある機能を使う場合に対象となるものがトレイトを実装されているものに限定されているだけ
これはただの制約でしかない
学生と言うクラスに対してそれが三角形なのかと言う問いはおかしく見えるが
学生であり三角形でもある可能性もある
トレイトが実装されていなくても同等の機能が実装されている可能性もある
一概にトレイトが実装されているから高機能であると言う論は当てはまらない
ある機能を使う場合に対象となるものがトレイトを実装されているものに限定されているだけ
これはただの制約でしかない
528デフォルトの名無しさん
2025/03/15(土) 11:03:33.75ID:M+mqoQUv トレイト境界 トレイト制約 トレイト要求 トレイト条件 トレイト限定
whereでトレイトを限定しているので指定の自由度は低くなっている
whereでトレイトを限定しているので指定の自由度は低くなっている
529デフォルトの名無しさん
2025/03/15(土) 11:10:08.04ID:ub1zWmmn >>527
プログラムを書いたことないのかな?
impl Display for T した時にそれはDisplay機能を追加したのであって制約したわけではない
fn foo<T: Display>() した時もそれはDisplay機能を追加したのであって制約したわけではない
もちろん逆の視点で見れば制約になるのは当たり前だが逆の視点で見る必要がない
普通の視点ではDisplay機能が増えて利便性が上がったと解釈する
その機能を持つ線引きとしてトレイト境界がある
これをトレイト制約と訳すのは違和感ありまくりの間違いだ
プログラムを書いたことないのかな?
impl Display for T した時にそれはDisplay機能を追加したのであって制約したわけではない
fn foo<T: Display>() した時もそれはDisplay機能を追加したのであって制約したわけではない
もちろん逆の視点で見れば制約になるのは当たり前だが逆の視点で見る必要がない
普通の視点ではDisplay機能が増えて利便性が上がったと解釈する
その機能を持つ線引きとしてトレイト境界がある
これをトレイト制約と訳すのは違和感ありまくりの間違いだ
530デフォルトの名無しさん
2025/03/15(土) 11:11:57.53ID:ub1zWmmn531デフォルトの名無しさん
2025/03/15(土) 11:15:38.63ID:M+mqoQUv532デフォルトの名無しさん
2025/03/15(土) 11:16:16.66ID:M+mqoQUv >>530
わざと馬鹿な振りしてるのか?普通に馬鹿なのかどっちなんだ?
わざと馬鹿な振りしてるのか?普通に馬鹿なのかどっちなんだ?
533デフォルトの名無しさん
2025/03/15(土) 11:19:12.75ID:M+mqoQUv トレイト境界 訳語でぐぐったら出来たぞ
https://github.com/rust-lang-ja/book-ja/issues/172
> その型がとりうる値を制限し、より具体的な型を定義する
制約を含んでいる
https://github.com/rust-lang-ja/book-ja/issues/172
> その型がとりうる値を制限し、より具体的な型を定義する
制約を含んでいる
534デフォルトの名無しさん
2025/03/15(土) 11:21:18.09ID:ub1zWmmn >>531
真逆の視点で見れば制約と解釈できるのは当たり前
しかしそんなバカな視点持つ人はいない
デフォルトとAnyトレイトしか使えない不便で制約が最大の状態から
各トレイト境界により各トレイト機能を使えるように制限を解放していくのがトレイト境界のプログラミングほ本質
「トレイト制約」派は頭がおかしい
真逆の視点で見れば制約と解釈できるのは当たり前
しかしそんなバカな視点持つ人はいない
デフォルトとAnyトレイトしか使えない不便で制約が最大の状態から
各トレイト境界により各トレイト機能を使えるように制限を解放していくのがトレイト境界のプログラミングほ本質
「トレイト制約」派は頭がおかしい
535デフォルトの名無しさん
2025/03/15(土) 11:23:51.41ID:M+mqoQUv >>534
相手に対して決めつけたベン図的な考えをしてるのが間違い
自分はトレイト制約にしろとはいってない
ただトレイト境界は制限を含んだものだと言ってる
自由度が低くなると言っている
トレイト境界で自由度が高くなると言うポンコツと意見が対立するのは当たり前
相手に対して決めつけたベン図的な考えをしてるのが間違い
自分はトレイト制約にしろとはいってない
ただトレイト境界は制限を含んだものだと言ってる
自由度が低くなると言っている
トレイト境界で自由度が高くなると言うポンコツと意見が対立するのは当たり前
536デフォルトの名無しさん
2025/03/15(土) 11:26:39.91ID:M+mqoQUv 学生であり三角形の可能性としては
名前が 三角 形さんである場合が当てはまる
その人は学生であり三角形
名前が 三角 形さんである場合が当てはまる
その人は学生であり三角形
537デフォルトの名無しさん
2025/03/15(土) 11:28:48.27ID:A6Zst3Ly >>498
これに触れちゃったから真っ赤になっちゃってるね
これに触れちゃったから真っ赤になっちゃってるね
538デフォルトの名無しさん
2025/03/15(土) 11:32:47.50ID:MW+uPLNw >>534
もしかして impl X for Foo のように「トレイトを実装する」ことを trait bound と思ってる?
trait bound は「この関数に渡せる型Tは〇〇を満たさなければならない」の意味だよ?
Tとしか書かれてないジェネリクス関数は文字通り「何でも渡せる」から、これが一番制約が少ない
もしかして impl X for Foo のように「トレイトを実装する」ことを trait bound と思ってる?
trait bound は「この関数に渡せる型Tは〇〇を満たさなければならない」の意味だよ?
Tとしか書かれてないジェネリクス関数は文字通り「何でも渡せる」から、これが一番制約が少ない
539デフォルトの名無しさん
2025/03/15(土) 11:34:15.16ID:ub1zWmmn >>535
何度言っても理解しようとしないやつだな
非現実的な視点としてそこでは使わない非該当な型からみれば、その型は使えないのだから制限となるのは当たり前だ
そんなプログラミングとかけ離れた非現実的な視点でみるのはおかしい
プログラミングの視点では各トレイト境界を増やすことでその関数でできることが増えて制限から解放される
何度言っても理解しようとしないやつだな
非現実的な視点としてそこでは使わない非該当な型からみれば、その型は使えないのだから制限となるのは当たり前だ
そんなプログラミングとかけ離れた非現実的な視点でみるのはおかしい
プログラミングの視点では各トレイト境界を増やすことでその関数でできることが増えて制限から解放される
540デフォルトの名無しさん
2025/03/15(土) 11:40:22.78ID:ub1zWmmn >>538
その真逆な視点から見れば制約になるのはの当たり前だとずっと言ってるだろ
どちらを制約と捉えるかの問題
Anyしか何もできない<T>が最も制約されている状況
それに対して<T: Trait>とトレイト境界を課すことで制約がなくなって使える機能が増えていく
その真逆な視点から見れば制約になるのはの当たり前だとずっと言ってるだろ
どちらを制約と捉えるかの問題
Anyしか何もできない<T>が最も制約されている状況
それに対して<T: Trait>とトレイト境界を課すことで制約がなくなって使える機能が増えていく
541デフォルトの名無しさん
2025/03/15(土) 11:41:12.38ID:M+mqoQUv >>539
トレイト境界に対しては真逆だろ
プログラミングの視点で見てもトレイト境界を増やすことで制限が増えて対象への制約が増える
実装でトレイトにあたる部分を使用しているかどうかはどうであれ自由度が減る
こんな当たり前のことすら理解できないのか?
トレイト境界に対しては真逆だろ
プログラミングの視点で見てもトレイト境界を増やすことで制限が増えて対象への制約が増える
実装でトレイトにあたる部分を使用しているかどうかはどうであれ自由度が減る
こんな当たり前のことすら理解できないのか?
542デフォルトの名無しさん
2025/03/15(土) 11:43:24.52ID:M12uOjVK あえて造語すれば機能域とかになるのかな
制約とか機能が増えるとかは視点によって出てくる結果だろう
制約とか機能が増えるとかは視点によって出てくる結果だろう
543デフォルトの名無しさん
2025/03/15(土) 11:46:45.42ID:ub1zWmmn >>541
その180度逆の視点で見れば制約になるのは当たり前だがそんな視点でプログラミングは行われない
「トレイト境界」により「制約された」とは考えることはなく
「(制限されてる状態から)使える機能が増えた」と考える
その180度逆の視点で見れば制約になるのは当たり前だがそんな視点でプログラミングは行われない
「トレイト境界」により「制約された」とは考えることはなく
「(制限されてる状態から)使える機能が増えた」と考える
544デフォルトの名無しさん
2025/03/15(土) 11:50:54.00ID:ub1zWmmn >>542
その通り
視点によって両方が起こる
だからそこ「トレイト制約」ではなく「トレイト境界」が正しい
各トレイト境界により線引きされて境界が定まるだけ
それにより使える機能が増えて便利になることがプログラミングの本質
制約されて不便になったとは考えない
その通り
視点によって両方が起こる
だからそこ「トレイト制約」ではなく「トレイト境界」が正しい
各トレイト境界により線引きされて境界が定まるだけ
それにより使える機能が増えて便利になることがプログラミングの本質
制約されて不便になったとは考えない
545デフォルトの名無しさん
2025/03/15(土) 11:54:54.99ID:M+mqoQUv >>543
脱線になるが自由度の意味が判ってない
三角形なら基礎的なルール(三つの角度を合わせると180度など)守っていれば辺の長さや角度は自由に設定できる 自由度が高い
二等辺三角形は二辺の長さが同じと言う制約がありその他にも角度が制限される 自由度が低い
二等辺三角形は自由度が低いがそのために角度などを利用して他の隣接した線分などとの角度が確定できるようになる
自由度は減っているが他から見ると利用価値がただの三角形から上がってる
脱線になるが自由度の意味が判ってない
三角形なら基礎的なルール(三つの角度を合わせると180度など)守っていれば辺の長さや角度は自由に設定できる 自由度が高い
二等辺三角形は二辺の長さが同じと言う制約がありその他にも角度が制限される 自由度が低い
二等辺三角形は自由度が低いがそのために角度などを利用して他の隣接した線分などとの角度が確定できるようになる
自由度は減っているが他から見ると利用価値がただの三角形から上がってる
546デフォルトの名無しさん
2025/03/15(土) 11:57:50.75ID:5IRcwf8/ 制限なしの型パラメータを制限してるだけでしょ
<T> ←制限ナシ
<T: Eq> ←Eqで制限
<T: Copy> ←Copyで制限
<T: Eq + Copy> ←Eq+Copyで制限
制約って言ってる人の感覚のほうが俺も近い
(型パラメータの型を)制約ってことでしょ
> 使える機能が増えて便利になることがプログラミングの本質
そんな主張生まれて初めて目にしたわ正直w
<T> ←制限ナシ
<T: Eq> ←Eqで制限
<T: Copy> ←Copyで制限
<T: Eq + Copy> ←Eq+Copyで制限
制約って言ってる人の感覚のほうが俺も近い
(型パラメータの型を)制約ってことでしょ
> 使える機能が増えて便利になることがプログラミングの本質
そんな主張生まれて初めて目にしたわ正直w
547デフォルトの名無しさん
2025/03/15(土) 12:03:05.22ID:M+mqoQUv 自由度すら理解できないなんて
この人いつもの長文でおかしなRust擁護書いてる人かな?
この人いつもの長文でおかしなRust擁護書いてる人かな?
548デフォルトの名無しさん
2025/03/15(土) 12:04:44.44ID:ub1zWmmn >>546
その真逆の不自然な視点を取ることももちろん可能だが
普通はこちらの視点
<T> ←(Any以外)何もできず制限最大
<T: Eq> ←Eqが使えるようになる
<T: Copy> ←Copyが使えるようになる
<T: Eq + Copy> ←EqもCopyも使えるようになる
制約を増やしているのではなく
機能を増やしている
だからトレイト制約なんていうバカな呼び方を採用しない
その真逆の不自然な視点を取ることももちろん可能だが
普通はこちらの視点
<T> ←(Any以外)何もできず制限最大
<T: Eq> ←Eqが使えるようになる
<T: Copy> ←Copyが使えるようになる
<T: Eq + Copy> ←EqもCopyも使えるようになる
制約を増やしているのではなく
機能を増やしている
だからトレイト制約なんていうバカな呼び方を採用しない
549デフォルトの名無しさん
2025/03/15(土) 12:07:05.48ID:qQFYiVQo >>523
そう思うならトレイト視界を使ってくれ
そう思うならトレイト視界を使ってくれ
550デフォルトの名無しさん
2025/03/15(土) 12:10:13.35ID:ub1zWmmn551デフォルトの名無しさん
2025/03/15(土) 12:10:26.25ID:5IRcwf8/ 型を制限してるんよね
機能がどうのこうのの以前にね
これって理解するの難しいのかなあ
機能がどうのこうのの以前にね
これって理解するの難しいのかなあ
552デフォルトの名無しさん
2025/03/15(土) 12:13:27.59ID:ub1zWmmn553デフォルトの名無しさん
2025/03/15(土) 12:16:19.89ID:ub1zWmmn554デフォルトの名無しさん
2025/03/15(土) 12:16:42.56ID:M+mqoQUv >>548
vec<T>
vec<T>:where T Eq
vec<T>:where T:Copy
vec<T>:where Eq + Copy
自由度が高いvecはどれ?トレイト境界で自由度が増えるなんて馬鹿はいない
vec<T>
vec<T>:where T Eq
vec<T>:where T:Copy
vec<T>:where Eq + Copy
自由度が高いvecはどれ?トレイト境界で自由度が増えるなんて馬鹿はいない
555デフォルトの名無しさん
2025/03/15(土) 12:23:05.50ID:ub1zWmmn >>554
二つの視点を理解できた?
さらにその問題ならVecの視点とTの視点でさらに二つ分かれる
もちろんトレイト境界はTに対するものだからTの視点が普通人の視点
トレイト境界が何もなければTに対して何もできないから一番不自由な状態
二つの視点を理解できた?
さらにその問題ならVecの視点とTの視点でさらに二つ分かれる
もちろんトレイト境界はTに対するものだからTの視点が普通人の視点
トレイト境界が何もなければTに対して何もできないから一番不自由な状態
556デフォルトの名無しさん
2025/03/15(土) 12:24:50.62ID:E7lv2JsK 「自己責任」の語源という噂もあるIT界隈ってやっぱ最先端なんだな
自由と制約
性善説と性悪説
なんでもITで定義できる
自由と制約
性善説と性悪説
なんでもITで定義できる
557デフォルトの名無しさん
2025/03/15(土) 12:24:54.00ID:5IRcwf8/ <T: Eq>で考えたとき
「: Eq」はどこにかかってんのか?
「T」でしょ、それ以外ではないでしょ?
で「T]は何かっていうと型でしょ?
この話のどこに「機能」とやらが出てきたの?
片方の視点もなにも、そもそもの話が
「: Eq」はどこにかかってんのか?
「T」でしょ、それ以外ではないでしょ?
で「T]は何かっていうと型でしょ?
この話のどこに「機能」とやらが出てきたの?
片方の視点もなにも、そもそもの話が
558デフォルトの名無しさん
2025/03/15(土) 12:25:47.49ID:M+mqoQUv まだ自由度すら理解できないんだよな
文系プログラマの末路が見える
文系プログラマの末路が見える
559デフォルトの名無しさん
2025/03/15(土) 12:30:10.54ID:MW+uPLNw 「俺の解釈」でなくちゃんと公式の説明を読もう
https://doc.rust-lang.org/reference/trait-bounds.html
https://doc.rust-lang.org/reference/trait-bounds.html
560デフォルトの名無しさん
2025/03/15(土) 12:32:15.55ID:ub1zWmmn >>557
各トレイトは各々の特性という機能を宣言している
Tという型が何をすることができるものかをトレイト境界で指定していく
ちなみに何度も言っているが
Tという抽象型自体の視点ではなくて、Tに入りうる具体型候補の集合という裏の視点で見れば、トレイト境界が制約になることはもちろん理解している
そんな偏った視点で考えるのはおかしいと主張しているだけ
だから「トレイト制約」というアホな用語は絶対に許容しない
各トレイトは各々の特性という機能を宣言している
Tという型が何をすることができるものかをトレイト境界で指定していく
ちなみに何度も言っているが
Tという抽象型自体の視点ではなくて、Tに入りうる具体型候補の集合という裏の視点で見れば、トレイト境界が制約になることはもちろん理解している
そんな偏った視点で考えるのはおかしいと主張しているだけ
だから「トレイト制約」というアホな用語は絶対に許容しない
561デフォルトの名無しさん
2025/03/15(土) 12:34:54.10ID:M+mqoQUv 文系が誤魔化しに来ている
562デフォルトの名無しさん
2025/03/15(土) 12:35:11.48ID:5IRcwf8/ >>559
恥ずかしながらそれ読んだことなかったw
> Trait and lifetime bounds provide a way for generic items to restrict which types and lifetimes are used as their parameters.
> 特性と有効期間の境界は、汎用アイテムがパラメータとして使用される型と有効期間を制限する方法を提供します
はいこれ
型を制限なのです
恥ずかしながらそれ読んだことなかったw
> Trait and lifetime bounds provide a way for generic items to restrict which types and lifetimes are used as their parameters.
> 特性と有効期間の境界は、汎用アイテムがパラメータとして使用される型と有効期間を制限する方法を提供します
はいこれ
型を制限なのです
563デフォルトの名無しさん
2025/03/15(土) 12:41:26.07ID:M+mqoQUv564デフォルトの名無しさん
2025/03/15(土) 12:41:44.05ID:ub1zWmmn 言った通りだろ
T自体ではなくTに入りうる具体型候補の集合で考えればもちろん制限になる
T自体ではなくTに入りうる具体型候補の集合で考えればもちろん制限になる
565デフォルトの名無しさん
2025/03/15(土) 12:43:19.33ID:ub1zWmmn566デフォルトの名無しさん
2025/03/15(土) 12:50:29.91ID:M+mqoQUv トレイト境界 機能:型を制約します
その一方で
「トレイト制約は不自然だ~」
これは無いな
その一方で
「トレイト制約は不自然だ~」
これは無いな
567デフォルトの名無しさん
2025/03/15(土) 12:58:39.76ID:ub1zWmmn568デフォルトの名無しさん
2025/03/15(土) 13:09:12.24ID:MW+uPLNw >>567
bound が「線引き」だとして、例えばRustコンパイラが出す以下のメッセージはどう訳すの?
Error: the trait bound is not satisfied
「制約を満たさない」からエラー、という方が自然じゃない?
bound が「線引き」だとして、例えばRustコンパイラが出す以下のメッセージはどう訳すの?
Error: the trait bound is not satisfied
「制約を満たさない」からエラー、という方が自然じゃない?
569デフォルトの名無しさん
2025/03/15(土) 13:22:26.55ID:ub1zWmmn >>568
文字通りにトレイト境界を満たさないだよ
例えば具体的に Error: the trait bound 'TypeA: TraitB' is not satisfied と指摘される
つまりこのトレイト境界を満たさないとは
TypeAはTraitB(の機能)を実装していない、という意味
文字通りにトレイト境界を満たさないだよ
例えば具体的に Error: the trait bound 'TypeA: TraitB' is not satisfied と指摘される
つまりこのトレイト境界を満たさないとは
TypeAはTraitB(の機能)を実装していない、という意味
570デフォルトの名無しさん
2025/03/15(土) 13:23:13.31ID:MW+uPLNw 「トレイト境界」という言葉が既に用語として認識されている感はあるし、「トレイト境界を満たさない」と書いても実用上は伝わると思うけど
「境界線を満たす」のように、satisfyの目的語が線になることはないと思う
「境界線を満たす」のように、satisfyの目的語が線になることはないと思う
571デフォルトの名無しさん
2025/03/15(土) 13:24:22.65ID:e4F+UdWA トレイトも日本語に訳した方がいいよね
572デフォルトの名無しさん
2025/03/15(土) 13:26:47.33ID:ub1zWmmn573デフォルトの名無しさん
2025/03/15(土) 13:28:22.19ID:qQFYiVQo imple S {}
を全面的に禁止して
imple T for S {}
だけしか使えない環境にするべきだったね
を全面的に禁止して
imple T for S {}
だけしか使えない環境にするべきだったね
574デフォルトの名無しさん
2025/03/15(土) 13:35:57.03ID:ub1zWmmn575デフォルトの名無しさん
2025/03/15(土) 13:38:34.38ID:tBWUFgvS576デフォルトの名無しさん
2025/03/15(土) 13:43:15.55ID:ub1zWmmn577デフォルトの名無しさん
2025/03/15(土) 14:20:09.90ID:E7lv2JsK 二項演算を使いたいだけなのに単位元の定義を強制されるパターンはたまにある
制約がないと言えるのは、使いたい関数の名前とトレイトの名前が同じやつだ
制約がないと言えるのは、使いたい関数の名前とトレイトの名前が同じやつだ
578デフォルトの名無しさん
2025/03/15(土) 14:32:56.25ID:WVXVz4wb なんか伸びてるけどトレイトのようなものは他言語でもよくあるでしょうに
ジェネリックくらいちゃんと理解しとけ
ジェネリックくらいちゃんと理解しとけ
579デフォルトの名無しさん
2025/03/15(土) 14:46:17.14ID:Th8G7jf3 PHPだね
580デフォルトの名無しさん
2025/03/15(土) 14:47:12.31ID:Th8G7jf3 Pythonにはトレイト無いんだよね
581デフォルトの名無しさん
2025/03/15(土) 15:05:58.12ID:5IRcwf8/ >>578
Javaのジェネリクスどうなってるかなって見てみたら
https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html
> Bounded type parameters are ...
> ..., use a type parameter bounded by the Comparable<T> interface:
Bounded type parametersって呼び方なんだな
Javaのジェネリクスどうなってるかなって見てみたら
https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html
> Bounded type parameters are ...
> ..., use a type parameter bounded by the Comparable<T> interface:
Bounded type parametersって呼び方なんだな
582デフォルトの名無しさん
2025/03/15(土) 15:11:33.31ID:suA91QDC 制約と言う人達は trait を理解していない
C++03からやり直すべき
C++03からやり直すべき
583デフォルトの名無しさん
2025/03/15(土) 15:19:39.28ID:MW+uPLNw >>582
このスレで出てる話は trait でなく trait bound という言葉についてだぞ
このスレで出てる話は trait でなく trait bound という言葉についてだぞ
584デフォルトの名無しさん
2025/03/15(土) 16:39:04.00ID:HIinARQ8 >>570
日本語では「境界を満たしていません」なんて言い方はしないんだよ
質の悪い機械翻訳以外ではね
現代日本語の「境界」は境界線や境目のことであって境界づけられた範囲や領域を指して「境界」とは言わない
“bound is not satisfied”や”requird by this bound”などからもわかるようにRustを開発してる中の人も明らかに制約面を重視してboundsという用語を使っている
それだけじゃなくtrait boundsはジェネリックの型パラメーターの型制約の一種
ジェネリックにおける「型制約」という用語はRustに限らずプログラミングの概念として広く定着しているものでRustでももちろん使われている
それらを完全に無視して無理のある「境界」という訳語を当ててこじつけ解釈を続けるメリットは何もない
日本語では「境界を満たしていません」なんて言い方はしないんだよ
質の悪い機械翻訳以外ではね
現代日本語の「境界」は境界線や境目のことであって境界づけられた範囲や領域を指して「境界」とは言わない
“bound is not satisfied”や”requird by this bound”などからもわかるようにRustを開発してる中の人も明らかに制約面を重視してboundsという用語を使っている
それだけじゃなくtrait boundsはジェネリックの型パラメーターの型制約の一種
ジェネリックにおける「型制約」という用語はRustに限らずプログラミングの概念として広く定着しているものでRustでももちろん使われている
それらを完全に無視して無理のある「境界」という訳語を当ててこじつけ解釈を続けるメリットは何もない
585デフォルトの名無しさん
2025/03/15(土) 17:03:40.05ID:suA91QDC bounds に制約という意味はない
586デフォルトの名無しさん
2025/03/15(土) 17:07:19.39ID:suA91QDC trait は特性を表現するのみで
それが何かを制約することはない
trait bounds はある特性の範囲を表現するのみで
それが何かを制約することはない
これで理解しないならお手上げだ
それが何かを制約することはない
trait bounds はある特性の範囲を表現するのみで
それが何かを制約することはない
これで理解しないならお手上げだ
587デフォルトの名無しさん
2025/03/15(土) 17:09:42.34ID:suA91QDC 日本に匙を投げる日は近い
備えよ
備えよ
588デフォルトの名無しさん
2025/03/15(土) 17:13:39.17ID:HIinARQ8 >>496
>boundsに制約なんて意味はない
>trait boundsも、ある一定内の数値や、配列のインデックスなどのbounds checkingと同じく境界が定まる
制約という意味はあるよ
辞書にものってる
制約という訳語がそのまま載ってない辞書でも制限や許容範囲という訳語はあるはず
制限と制約は微妙に違う単語でニュアンスも違うけど状況によっては代わりに使える単語
英語でconstraintとrestrictionを使い分けるのに似てる
type restrictionとtype constraintのどちらが伝えたい意味に近いかという話と同じ
伝えたいニュアンスとは別に「型制約」という概念・用語がかなり昔から広く浸透してることを考えるとトレイト制限とトレイト制約を比べれば後者のほうがより適切と判断するのはごくごく自然なことだと思う
>boundsに制約なんて意味はない
>trait boundsも、ある一定内の数値や、配列のインデックスなどのbounds checkingと同じく境界が定まる
制約という意味はあるよ
辞書にものってる
制約という訳語がそのまま載ってない辞書でも制限や許容範囲という訳語はあるはず
制限と制約は微妙に違う単語でニュアンスも違うけど状況によっては代わりに使える単語
英語でconstraintとrestrictionを使い分けるのに似てる
type restrictionとtype constraintのどちらが伝えたい意味に近いかという話と同じ
伝えたいニュアンスとは別に「型制約」という概念・用語がかなり昔から広く浸透してることを考えるとトレイト制限とトレイト制約を比べれば後者のほうがより適切と判断するのはごくごく自然なことだと思う
589デフォルトの名無しさん
2025/03/15(土) 17:19:50.55ID:HIinARQ8 >>586
>trait bounds はある特性の範囲を表現するのみで
>それが何かを制約することはない
型パラメーターが自由に動ける範囲を制約するもの
そもそもboundsは単純な「範囲」という意味ではなく何かが許された範囲・領域のことで制約・制限的なものが必ずついて回る
>trait bounds はある特性の範囲を表現するのみで
>それが何かを制約することはない
型パラメーターが自由に動ける範囲を制約するもの
そもそもboundsは単純な「範囲」という意味ではなく何かが許された範囲・領域のことで制約・制限的なものが必ずついて回る
590デフォルトの名無しさん
2025/03/15(土) 17:21:45.08ID:tr5ODwiQ 「境界」という言葉のほうを軸にするなら満たす/満たさないではなく越える/越えないと言ったほうが自然かなとは思う。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
