Rust part27

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/12/02(月) 22:32:50.31ID:D+1pIyvG
公式
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/
2025/03/15(土) 20:26:33.32ID:BMkcs71n
QiitaやZennでも
2025/03/15(土) 20:27:24.54ID:BMkcs71n
>>617
本を見てくれ
2025/03/15(土) 20:30:16.76ID:9va4ZYj7
>>619
どういう根拠が書かれているの?
621デフォルトの名無しさん
垢版 |
2025/03/15(土) 20:30:49.53ID:suA91QDC
[0、9)という半開区間があったとして
これを数値範囲の制限に使ったとしても
半開区間を制約とは言わない
半開区間で示される数値の範囲を制約に使っただけである

これで理解できるか?
622デフォルトの名無しさん
垢版 |
2025/03/15(土) 20:33:16.68ID:suA91QDC
おいおい大丈夫か日本列島?
623デフォルトの名無しさん
垢版 |
2025/03/15(土) 20:33:57.45ID:MW+uPLNw
>>621
それは通常 bound と呼ばないものを持ち込んで無理にこじつけてないか?
2025/03/15(土) 20:35:41.76ID:YJDn0bnr
凡俗法則だっけ?
どうでもいい話題ほど盛り上がるってやつ
2025/03/15(土) 20:37:09.22ID:BxnZ1UiZ
オライリー教は難儀だなぁ
626デフォルトの名無しさん
垢版 |
2025/03/15(土) 20:38:46.91ID:suA91QDC
>>616 が誤解している可能性と
オライリーの質が落ちてる可能性と
二つの可能性が存在する
2025/03/15(土) 20:39:57.08ID:0G30F5AB
trait boundsはそのトレイトによる境界・限界・領域を表している
そこには制約の概念も意味も一切ない
そのtrait boundsによってパラメータの取り得る範囲が制限を受ける

以上の二つの事実を混同して
trait boundsをトレイト制限と呼ぶのはおかしい
ましてやトレイト制約と呼ぶのは論外
2025/03/15(土) 20:50:07.53ID:5IRcwf8/
https://github.com/rust-lang-ja/book-ja
ここ見てみたらそもそも最初はTatsuya Kawanoって人がいきなり書いた文章よね?
「トレイト境界」ってのは
それ以前にrustコミュニティでこの用語定義されてるの見たことある?
誰かrustの歴史に詳しい人ー
2025/03/15(土) 21:03:27.05ID:9va4ZYj7
>>628
そのissueで議論されている
・既に多くの人たちがブログetc.の記事でトレイト境界と書いていた
・Scalaでもboundsは境界と訳している
・配列のbounds checkも境界チェック
・制約と訳される場合は英語がconstraint
2025/03/15(土) 21:06:26.31ID:5IRcwf8/
わかった何がモヤってたのか
CならJIS規格があって用語も定義されてるからそれに倣えばいい
Javaなら開発元がご存命のときに日本語のドキュメントはすでにあったんでそれに倣えばいい
Rustの場合は現時点では規格が無いんよね
規格があったらそれがなんであれ書いてある用語に従うよねみんなが

>>628
それだけ?
2025/03/15(土) 21:27:59.47ID:E7lv2JsK
規格が重視されなくなったのは多分CPythonがCでライブラリを大量生産した歴史のおかげだ
2025/03/15(土) 21:31:58.75ID:0G30F5AB
trait boundsの概念の理解を間違えて「トレイト制約」だと誤認してしまった人は
>>627で指摘した二つの話を混同している
2025/03/15(土) 21:43:48.49ID:M+mqoQUv
おじいちゃんはいつも一人でわあわあ言って泡吹いてるよな

トレイト境界 機能:型を制約します
2025/03/15(土) 21:53:08.18ID:BxnZ1UiZ
「型を制約します」って言い回しとして変じゃない?
「型”に”制約を課します」だったらまだ理解はできる。
もっとも制約を課してるわけではないので、この言い回しも適切ではないと思う。
2025/03/15(土) 21:58:09.74ID:Poqgk2wF
>>628
そのリポジトリは比較的最近のやつで訳語は過去のを踏襲しただけ
一番最初のTRPL翻訳の該当するPRはおそらくこれかな
https://github.com/rust-lang-ja/the-rust-programming-language-ja/pull/38
2025/03/15(土) 21:58:24.13ID:M+mqoQUv
じゃあ何だったら気に入るんだ?
型を限定しますか?
2025/03/15(土) 22:09:45.50ID:BxnZ1UiZ
「型の境界を明示する / 明確に示す」とか?
これが適切かどうかはわからんけど。
2025/03/15(土) 22:13:14.41ID:tr5ODwiQ
>>630
それはそう。
その上で、 >>628 は実質的に規範の地位を確立してるからもう妥当性を検証するような段階は過ぎてる……と認識してる人とそうでない人がいるんだと思う。
出来の良し悪しを言うやつも多いがそんなことをいったら JIS だってたいしたクオリティじゃないし、それでもなお規範という「ことにする」ということで納得しないとしょうがないんだけどなぁ。
2025/03/15(土) 22:26:10.52ID:5IRcwf8/
>>635
ご丁寧にありがとうございます(>>629さんもあらためてありがとね)

https://qiita.com/_Nnwww/items/529ad0397e4b3a59da67
> ジェネリック関数は'トレイト束縛'と一緒に使えば最高に便利になります

初めて目にしたけど
正直良いやん!って思った
トレイト束縛
最初はこれだったんやね
2025/03/15(土) 22:31:03.74ID:E7lv2JsK
倫理的な「殺すな」「盗むな」等に比べて、言語的な規則が実在すると何故そんなに信じているのかが分からない
どっちも存在するか、あるいはどっちも存在しないと考えるのが自然ではないかね
2025/03/15(土) 22:36:16.49ID:tr5ODwiQ
>>639
束縛は変数束縛とかで使うニュアンスがすでに定着しているので違和感を持つ人が多いと思う。
2025/03/15(土) 23:01:56.75ID:Poqgk2wF
>>639
それ以降も訳語を変えてはどうかという話は何度も出ているけど
結局のところ誰も説得力のある代案を出せなかったからそのままになっている、って感じ
確かrust-jpのslackでもいろいろ議論はあったと記憶しているけど
slackの過去ログは消えたので詳細は分からなくなってしまったね
2025/03/15(土) 23:37:53.75ID:lrO4FCGW
今回は代案が明確だから決定した
2025/03/15(土) 23:56:12.71ID:E7lv2JsK
主語がでかいっていうか主語が確定してない
2025/03/16(日) 00:20:19.13ID:B4wnHsDg
日本における Rust 黎明期から特に翻訳に取り組もうとした人たちが相談して決めたことより自分のほうが妥当だと思える感性が信じられない。
2025/03/16(日) 01:02:58.08ID:PKYfY0wz
>>645
どこの馬の骨ともわからん有志が対した議論もせずに
JavaやScalaの誤った訳か機械翻訳を間違って採用しただけだろ

しっかりした議論が残ってればもう少し違う見方もできるけど
これに関してはどのイシューひどいじゃん
2025/03/16(日) 02:18:37.75ID:w3N6tLjW
もういいじゃんそんな細けーこと
2025/03/16(日) 02:46:42.41ID:yI9oTyRI
武器などの物体は正義でも悪でもないとよく言われる
それを買ったただの消費者が正しさに寄与する
ただの消費者のほうが正しい、ではなく、正しさに寄与するのは消費者だけなのだ
2025/03/16(日) 03:28:25.58ID:ur48jpVS
ぶっちゃけそれ系の訳の問題言うならあれvariantが列挙子って訳になってるのをまずやめてほしい
2025/03/16(日) 03:31:26.33ID:f6FIyYfU
>>639
trait bounds自体は束縛や制約という意味を全く含んでいないため
そのトレイト束縛という日本語訳はよろしくない

trait boundsのboundsの意味から有り得る日本語訳は
トレイト境界
トレイト限界
トレイト限度
トレイト範囲
つまりトレイトによる空間の線引きといった概念を表している

つまりtrait bounds自体には制約や束縛といった概念は全く含まれていないためそこは明確に区別する必要がある

そしてtrait boundsによって型パラメーターが制限される(restrict)
このような関係なのでtrait boundsに対してトレイト制限という日本語訳ももちろんよくない
トレイト境界が型パラメーターを制限する関係
2025/03/16(日) 03:34:24.31ID:ur48jpVS
Type: Traitの二項関係をsubtypingだと解釈すればtrait boundはlower bound(下界)を宣言していると見ることもできなくはないけど
でもsubtypingじゃねーから微妙に惜しいんだよな

線とか言ってるのはただのバカ
2025/03/16(日) 03:55:22.51ID:f6FIyYfU
>>651
そこまで理解していながら
空間を線引きを線だと思ってしまった?
線引きは概念だから少なくとも空間に対する線引きは線と無関係
有界を引き起こす存在と表現した方がお気に召す?
2025/03/16(日) 05:18:13.31ID:Mb92w3En
何か延びてると思ったら
トレイト警察うざすぎ
2025/03/16(日) 06:07:04.14ID:fZszb0GG
どちらも譲らないから延々このネタで盛り上がっていいんじゃないの
昔のム板では「importは輸入という訳語がいいかカタカナでインポートがいいか」ってレスバに花が咲いて何ヶ月も揉めたことがあるよ

あんときもアレコレ英語の語源とか意味とか出てきてみんな楽しかったなあ

英語ネタというか翻訳ネタはいい意味でプログラムの本質の理解度を試されるから、ム板ではアルゴリズムそのものより熱く語られる伝統がある
2025/03/16(日) 06:09:34.58ID:w3N6tLjW
ちゃうちゃう
バカでも参加できる話題だから盛り上がるんだよ
2025/03/16(日) 06:26:58.07ID:OYB6I5YT
まだ出ていないようなので

【「トレイト制約」と呼んではいけない理由】
プログラミング言語で広く確立されている用語として「型制約 (type constraint)」がある
これは各言語によって様々な条件を指定することで型(パラメータ)を制約することを指す
つまり型が制約される対象である
もし「トレイト制約」という用語を用いるとトレイトが制約される対象となってしまう
そのため英語でもtrait constraint (トレイト制約)という用語を用いていない
trait bound (トレイト境界)は条件側の一つである
657デフォルトの名無しさん
垢版 |
2025/03/16(日) 08:35:57.95ID:et8KMeeu
C++03からやり直せば理解が進むのでは?
2025/03/16(日) 08:44:56.04ID:MZvUgHKE
https://ejje.weblio.jp/content/bounds

日本語WordNet(英和)での「bounds」の意味
ものの限界または範囲を示す線あるいは面

EDR日英対訳辞書での「bounds」の意味
リミット;切り;埒;限り;方図;限界;限度

日英・英日専門用語辞書での「bounds」の意味
上下限,範囲,限度,限界

斎藤和英大辞典での「bounds」の意味
制限;範囲;極限;際涯;構内;切り;程;極際;限界

Weblio英和対訳辞書での「bounds」の意味
埒, 埓, 上下限, 境界, 限度, 果てし, 際限, 限り, 程
限り, 範囲, 限界, 〈際限〉・切り, 〈限度〉・程, 際限, 〈限界〉・極限, 限度
領域
バウンズ
2025/03/16(日) 09:19:47.84ID:QnytwJN4
そういや、日本語訳に文句のある人は最新のthe book の翻訳はしないの?

旧日本語版は情報が古いし公式からリンクを貼られているgithubのは翻訳している気配無いし。翻訳が間違っているなら、最新版の翻訳を用意すれば正しい方向に誘導できるんじゃないのかね。
2025/03/16(日) 09:28:08.49ID:OHAI5BZ5
境界がイメージしにくいとかじゃなくてboundsと言うワードが機能をうまく表現していない

boundsの訳を一生懸命模索してもそこがネックになる
訳語を離れると機能面で制約や限定などになる
2025/03/16(日) 09:31:22.26ID:B4wnHsDg
>>660
テクニカルタームはそういうもんなんだってば。
Rust ではこういう意味だと定義したならそれでいくしかないの。
2025/03/16(日) 09:56:09.74ID:OHAI5BZ5
自分は別に境界でも良いと思う
でも、理解しにくいとか納得できないと言う声が大きいならそれに対しても対応しないと
ユーザーが伸びない
2025/03/16(日) 10:05:35.57ID:YoyW4Wr9
bounds という単語に縛られすぎているw のかも

英語の方でも、ある概念を表すのに不十分ながら敢えてその単語を当てているということもあるだろうから
単語の訳にこだわるよりも概念の方にこだわるべきで、それを表す日本語の候補を挙げて適宜使い分けるとか
あるいは造語するとかした方が良いのかもね
2025/03/16(日) 11:14:15.60ID:OYB6I5YT
トレイト境界よりも良い候補がないんだよ
ちなみに
トレイト制約だけは>>656の理由で使用禁止なので
2025/03/16(日) 11:24:48.77ID:OHAI5BZ5
じゃあトレイト指定かトレイト制限で
2025/03/16(日) 11:26:44.63ID:OHAI5BZ5
トレイト限定 トレイト固定 トレイト制約 トレイト条件
2025/03/16(日) 11:48:31.73ID:lghBi3nK
where ~だからトレイト句 トレイト節で良かったのになあ
もともと英語からしてしっくり来てない人もいるのでは
2025/03/16(日) 11:53:59.91ID:OYB6I5YT
>>665 >>666
型制約や型制限や型限定をするために使われる側の話だから
トレイト制約やトレイト制限やトレイト限定は全てダメ
トレイトを限定(制約)していない
2025/03/16(日) 11:55:14.15ID:OHAI5BZ5
それはあなたの乾燥()ですよねとしか

実際に制限され限定され固定され制約されているんだけど
2025/03/16(日) 11:57:24.55ID:Mb92w3En
parameterを媒介変数って訳したのも誤訳だと思います
2025/03/16(日) 11:58:52.71ID:/wKHKA1M
>>650
>trait bounds自体は束縛や制約という意味を全く含んでいないため
制約という意味は含まれてるよ
辞書的にもboundsの和訳として「制約」が使われてるものがあるし
文脈的にもtrait boundsは型制約(type constraints)の一つの方法だから「制約」と訳すことに大きな問題はない

束縛はbindの過去分詞のboundから取ってるもので
これは同じスペルの違う単語なので「境界」以上にやめたほうがいい
2025/03/16(日) 11:59:25.88ID:OHAI5BZ5
将来的になんらかの機能が拡張されて制約が生じるのがトレイトだけで無くなった場合どうするんだろうかとは思う
2025/03/16(日) 12:16:16.76ID:OYB6I5YT
>>671
型制約は型を制約するんだよ
トレイト制約はトレイトを制約するわけではないから誤解を招くでしょ
だからトレイト制約(trait constraint)という表現は英語版でも使われていないの
2025/03/16(日) 12:22:14.60ID:/wKHKA1M
>>650
>そしてtrait boundsによって型パラメーターが制限される(restrict)
>トレイト境界が型パラメーターを制限する関係

実装すべきトレイトを指定することで型パラメーターが取れる型の範囲を制限するのがtrait bounds
型パラメーターを制限するという意味を持たないのはあくまで”指定するトレイト”であってboundsにはすでに制限という意味が付随してる

これはboundsという英単語がもともと持っているものでもありtrait boundsでもその意味が付随している
2025/03/16(日) 12:33:45.83ID:OYB6I5YT
>>674
根本的な違いを理解しようよ

型は制限(制約)される側
だから型制限や型制約と言われる

トレイトは制限(制約)する側
だからトレイト制限やトレイト制約とは言わない
2025/03/16(日) 12:35:35.73ID:ljG29Uc3
Cで言えばvoid*をint*へキャストしてint変数を四則演算可能にする概念をboundsと呼んでるようなもので
型で制約するためにメモリ上へ境界を作ってると解釈してるわ
Rustはんではそないに呼びはりますか、どないでもよろしおすレベルなんだが、
メモリやストライドの意識がないとこんなんで盛り上がれるんだな
677デフォルトの名無しさん
垢版 |
2025/03/16(日) 12:52:27.37ID:5FNktwcE
>>676
それは全然違うぞ?
メモリ空間とか関係なく、コンパイル時の制約として使ってるだけ
例えば C++ の const なども「可変な操作を禁止する」けど、これはあくまでコンパイル時にチェックされるだけで、出力されるバイナリや実行時の動作には影響しない
2025/03/16(日) 12:53:19.59ID:/wKHKA1M
>>673
「トレイト制約」とするとトレイトを制約するものなのかトレイトによる制約なのかわからないというのはその通り
これは助詞的なものを省略して名詞化した場合に必ず発生すること

こういう場合は一般的に使われる「〇〇制約」という用語が〇〇が制約される対象という意味で使われているのかそれとも〇〇によって別の対象が制約されるという意味で使われているのかを考えるとよい

もし後者の意味ではほとんど使われていないなら問題となるが現実はそうではない
むしろ後者の意味で使われることのほうが多い

逆に「トレイト境界」のように「〇〇境界」という用語は
一般的にはある〇〇と別の〇〇の境界という意味で使われることがほとんど
つまりトレイトとトレイトの間の境界線と解釈されやすい
2025/03/16(日) 12:57:16.42ID:ljG29Uc3
>>677
言葉足らずだったね、そりゃそうだ
あくまで言語設計側のネーミングセンスと概念把握の方法の話をしている
さすがに現代の言語でメモリモデルに即した名前付けをしてるとは思ってないわ
2025/03/16(日) 12:57:40.04ID:OHAI5BZ5
このスレでは一人だけ勘違いしてるのはID:OYB6I5YT
2025/03/16(日) 13:12:06.44ID:/wKHKA1M
英単語のboundsには何かが許された範囲や領域のことで
境界線じゃなく内側のエリアが意味の中核

ただout of boundsやbeyond boundsのように
範囲の外に出てしまったこと表現している場合は
境界・境界線・限度のように面ではなく線で捉えても
実質的に問題がないから辞書にはその手の意味が列挙されている

そうじゃない文脈で境界・境界線の意味を伝えたいなら
boundsではなくboundaryを使う
2025/03/16(日) 13:30:12.28ID:fZszb0GG
トレイト界限でいいんじゃないの
台湾語でも領域の境界を表すというふうに翻訳してたぞ?

界(領域・範囲)の限(端っこ)なんだからもうこれで通じる
2025/03/16(日) 13:31:30.30ID:fZszb0GG
正確にはこうだ

特徵界限
使用泛型時,您通常會需要該型別實作 某些特徵,這樣才能呼叫該特徵的方法。
2025/03/16(日) 13:31:38.19ID:OHAI5BZ5
パラメーターTが条件で制約されている

皆は条件の方を見ている トレイトが条件となりTが制約されていると言うことは理解している

誰かはパラメーターTの方を見ている そしてトレイトが制約されてはいないと言う
もちろん誰もそんなことは言ってない
こちらは誰の目から見ても自明なのでそこを言ってるんじゃないと誰でも理解出来る
そこを明言しても不毛だから

皆はトレイト "で" 制約と理解しているが
誰かは意図的にトレイト "が" 制約されていないと永遠に繰り返す
話すだけ無駄
2025/03/16(日) 13:42:37.58ID:G6dj5tgH
>>682
界限は日本語だと使われない言葉なので
トレイト有界がいいんじゃないかな
トレイト有界により型制約をする
686デフォルトの名無しさん
垢版 |
2025/03/16(日) 13:46:32.71ID:+oxKnctY
仮にここのレスバで「トレイト制約」が勝ったとしてさ、これから実生活で「トレイト制約」使うの?
そして同僚に「なんでトレイト境界のことトレイト制約って呼ぶの?」って言われてこのスレ引用するの?

キチガイじゃん
2025/03/16(日) 13:47:04.12ID:JROXwZr8
ちな>>658の集計
5 限界
5 限度
3 際限
3 限り
3 範囲
3 程
3 切り
2 極限
2 埒
2 上下限
1 領域
1 際涯
1 構内
1 極際
1 果てし
1 方図
1 境界
1 埓
1 制限
1 リミット
1 バウンズ
1 ものの限界または範囲を示す線あるいは面
2025/03/16(日) 13:48:10.97ID:G6dj5tgH
>>686
勘違いのトレイト制約は絶対にあり得ないからその心配は必要ないかな
689デフォルトの名無しさん
垢版 |
2025/03/16(日) 13:55:57.01ID:iz14YCJR
>>688
どれが勝ったとしても、公式じゃない呼び方する奴はキチガイだよ
2025/03/16(日) 13:57:13.51ID:JROXwZr8
トレイト制約はオライリー本がソースなのが強いね
一方でトレイト境界はボランティア翻訳みたいなのがソースだから
2025/03/16(日) 14:01:13.30ID:G6dj5tgH
boundsに限界の意味はあっても制約の意味はないからトレイト制約は論外でしょ
2025/03/16(日) 14:05:12.42ID:ur48jpVS
そもそもtrait boundという英語自体が疑問符の付く表現なので日本語での100%正しい訳語を求めようという試みが徒労なんじゃな
2025/03/16(日) 14:20:00.51ID:rrJWS6si
今はRust本もたくさん出ているから多数決でも取ればいいんでは
とりあえず手元にある技評のは境界だった
まぁボランティア翻訳やってた人達が書いているから当然ではあるが
2025/03/16(日) 14:25:47.80ID:B4wnHsDg
技術的な仕様書の類は直訳が普通。
原本が絶対だから不審があるときには原本を調べやすいように対応付けを明らかにすることが意図されている。
2025/03/16(日) 14:29:48.29ID:B4wnHsDg
チュートリアルの類は仕様書の習慣に合わせるのは良くない部分があるけど、仕様書と違う用語を使っちゃったらそれはそれでおかしいしな。
2025/03/16(日) 14:36:08.11ID:0Ux+HUdg
トレイト界隈はここだ~
2025/03/16(日) 15:27:06.44ID:p/t/31g6
これが自転車置き場議論というやつか
2025/03/16(日) 15:28:00.89ID:UGKGcaiP
>>692
trait boundはビッタリな適切な表現なのでそこを問題視する人はいないよ

元々boundは数学での基本用語でそこからプログラミング言語でも使われている
数学ではT⊂Uで任意のt∈Tに対してt≦x, x∈Uとなるxをupper boundと言う
Scalaでupper type bound (上限型境界)『T <: U』とは型変数Tが型Uのサブタイプであることを示す
Rustでは『T: U 』で型パラメータTがトレイトSのトレイト境界(trait bound)を示す

つまりtrait boundは概念を上手く表している良い用語
あとはboundの日本語訳だけど上述の他の言語でも境界と訳している
他にもプログラミング界ではbound checkingを境界チェックまたは境界検査と訳している
2025/03/16(日) 15:35:28.57ID:OHAI5BZ5
>>698
トレイトが実装されていなければout of boundsと呼んでしっくりくるんならわかるけど
そうではないだろw
違和感しかない
2025/03/16(日) 15:41:36.89ID:o4pE96wL
>>698
数学用語は境界じゃなく界
それを間違って境界と訳してしまったのはScala関係者の罪
界であれば単語の持つ意味的には境界のように間違いというわけではないがトレイト界やライフタイム界とするとやや専門的過ぎて界と言えば相撲界や芸能界のような業界を連想する人たちを遠ざける

arrayのbound checkはindexが”妥当な範囲”の中にあるかどうかをチェックするもの
この”妥当な範囲”を示す便利な短い単語が日本語にはないため”妥当な範囲”という本来の含意を捨てて実質的に問題が発生しにくいと思われる意訳を行っている例が”境界検査”
2025/03/16(日) 15:46:24.18ID:0Ux+HUdg
トレイト界隈であってたw
2025/03/16(日) 16:05:24.34ID:JROXwZr8
界 ←右足をクネっとさせる田んぼマン
2025/03/16(日) 16:19:34.14ID:UGKGcaiP
Rustで単なるboundsは対象が明白な場合の略の場合とtrait boundsやlifetime biundsやuse boundsの総称として使われている
use boundsはこの前入ったprecious capturingね

fn capture<'a, 'b, T>(x: &'a (), y: T) -> impl Sized + use<'a, T> {
 (x, y)
}

いずれにせよboundsはRustにおいても長く定着して使われている基本用語なのでこれを批判しても意味がない
bounds1 + bounds2 + bounds3 と境界が複数あるとその共通部分に入るイメージ
2025/03/16(日) 16:25:19.93ID:o4pE96wL
トレイトを使った型制約なので「トレイト制約」

リファレンスやエラーメッセージでboundsと一緒に使われている動詞を見ればコアな開発者もboundsを満たすべき制約/条件/要件という感覚で使っていることがわかる

bounds must be satisfied
type must meet the bounds
relax the bound

「境界を満たす」とか「境界を緩和する」とか日本語でも英語でも言わない
2025/03/16(日) 16:42:01.76ID:o4pE96wL
オライリーだけでなく吉川邦夫氏は詳解Rustプログラミングでは「トレイト境界」を使っていたがRustプログラミング完全ガイドでは意味がわかりやすいという理由で「トレイト制約」に変更している

今のところオライリー以外でプロが翻訳してるRust関連本は吉川邦夫氏によるものだけだからプロが出した結論と言ってもいい

Comprehensive Rustの有志翻訳も「トレイト制約」を採用してる
2025/03/16(日) 16:52:16.61ID:EYtbd7GM
なるほど
少なくとも「自転車置き場議論」と見做す向きはこの新潮流に合流出来るね
2025/03/16(日) 16:59:35.31ID:Yi+x3lz/
boundの本来の意味を尊重するなら制約より制限だな
せめて「限」の字は使いたい
2025/03/16(日) 17:02:57.83ID:EM2y425s
全体の日本語訳の出来を比べればどちらがいいかは火を見るより明らか
2025/03/16(日) 17:09:59.63ID:XAVOZhzN
>>705,708
プロの仕事ですね
2025/03/16(日) 17:12:25.03ID:wVrB9aQi
専門用語は無理に訳さんでもいいのにな
訳したら対語表欲しい
2025/03/16(日) 17:19:10.85ID:+UscQcVS
ここまでで分かったことは、日本語には訳さずそのままtrait boundと言っておけてことだな。
うっかりトレイト境界って言おうものならオライリー教の狂信者が顔真っ赤にしてシュバってくるし。
2025/03/16(日) 17:21:32.54ID:JROXwZr8
c#のdelegateがデリゲートだったり
ほかにもclosureは単にクロージャって呼ばれてたり
同様にファンクタ、ラムダ式とかも
カタカナに置き換えるくらいが解釈の余地を挟まないから良いのかもね

https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/delegates/
2025/03/16(日) 17:24:23.81ID:itBAsdIa
Rustのusers forumでも数学でのboundsのようなものと説明があるね
つまり制約ではなくて境界や限界それらによる範囲を表しているんだよ
制約(constraint)とは概念が全く異なる用語であるためこの違いは重要かと

Q. What is “trait bounds” exact meaning?
Especially I can't understand the "bound" part.
Does it mean "bind"? Or does it mean "the border for the distinct from others"?

A. Yes.
In mathematics you might hear about “upper and lower bounds” for a numeric variable — it's the same sort of thing,
setting boundaries for what values (types) the type-variable may take on.
2025/03/16(日) 17:27:28.65ID:EbG2eP8B
>>713
その例は、命名者の思いとは裏腹に英語でも伝わらない、と言う事実を示している
2025/03/16(日) 17:31:17.26ID:itBAsdIa
>>714
違うよ
省略したけど I'm not an English speaker と質問者は書いている
2025/03/16(日) 17:36:45.60ID:nsP96nly
>>711-715
なるほど
英語でもカタカナでもだめで日本人には意訳してトレイト制約だな
2025/03/16(日) 17:50:14.98ID:itBAsdIa
>>716
boundsは制約ではなくて範囲や限界を示す用語だよ
それにより型が限定される
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況