公式
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 part25
https://mevius.5ch.net/test/read.cgi/tech/1722354386/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part26
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/09/20(金) 22:18:38.38ID:c48cFuZJ388デフォルトの名無しさん
2024/10/19(土) 20:35:05.03ID:11v9Pc45 >型無の関数型がありえる以上
ちょっと待って、それって「関数型」の定義が与えられてなけりゃ言えないことでしょ。
ちょっと待って、それって「関数型」の定義が与えられてなけりゃ言えないことでしょ。
389デフォルトの名無しさん
2024/10/19(土) 22:16:54.49ID:/3C3bE8g 関数型言語
390デフォルトの名無しさん
2024/10/20(日) 02:22:08.35ID:IoIIyUOe391デフォルトの名無しさん
2024/10/20(日) 07:51:49.41ID:Rpp5gjxc 横からだが、全ての関数型言語は関数型も一級オブジェクトだよ。
意味が無いから無いだけで、map関数の逆バージョン(関数と値の立場逆転)も作れる。
pam _ [] = []
pam x (f:fs) = f x:pam x fs
pam 1 [(+1), (+2), (+3)] = [2,3,4]
意味が無いから無いだけで、map関数の逆バージョン(関数と値の立場逆転)も作れる。
pam _ [] = []
pam x (f:fs) = f x:pam x fs
pam 1 [(+1), (+2), (+3)] = [2,3,4]
392デフォルトの名無しさん
2024/10/20(日) 08:53:33.20ID:vZg//j7Z そうなのよね。CS振りかざして偉そうにしてるヤツは単に分かってないだけで的外れ
393デフォルトの名無しさん
2024/10/20(日) 09:40:05.16ID:IoIIyUOe >>391
関数型自体をオブジェクトにして保存したり実行時解釈したりってできたっけ?
Rustならジェネリック関数の型引数を変数に保存して使うイメージ.
C++ならテンプレート関数のテンプレート引数を変数にして実行時解釈する感じ.
スクリプト言語とかならできるかな?
Rubyはできた気がする.Pythonはどうだったっけ?
JavaScriptはプロトタイプチェーンだからできるか.JavaScriptのプロトタイプオブジェクトを型と言って良いのか微妙だけど.
関数型自体をオブジェクトにして保存したり実行時解釈したりってできたっけ?
Rustならジェネリック関数の型引数を変数に保存して使うイメージ.
C++ならテンプレート関数のテンプレート引数を変数にして実行時解釈する感じ.
スクリプト言語とかならできるかな?
Rubyはできた気がする.Pythonはどうだったっけ?
JavaScriptはプロトタイプチェーンだからできるか.JavaScriptのプロトタイプオブジェクトを型と言って良いのか微妙だけど.
394デフォルトの名無しさん
2024/10/20(日) 09:41:59.72ID:N14K/WsC >>286
言語は関係なしにプログラマが優秀なだけだろ
言語は関係なしにプログラマが優秀なだけだろ
395デフォルトの名無しさん
2024/10/20(日) 10:01:17.80ID:KK2kuO2o396デフォルトの名無しさん
2024/10/20(日) 10:37:31.29ID:LzrvAVJD 歯透ける厨と同じ臭いがプンプンする
397デフォルトの名無しさん
2024/10/20(日) 13:32:41.76ID:AQmfmnaz ?
どこからか「関数型」が指すのがfunctionalからfunction typeにすり替わってないか
どこからか「関数型」が指すのがfunctionalからfunction typeにすり替わってないか
398デフォルトの名無しさん
2024/10/20(日) 14:28:18.13ID:xF+HnWMo399デフォルトの名無しさん
2024/10/20(日) 14:45:25.09ID:Rpp5gjxc >>393
関数型言語はオブジェクト指向じゃないのでオブジェクトは無いが…。
(OCamlならやCommon-Lispならオブジェクト指向もサポートしてるので、出来るかもしれないが)
というか、「全ての関数型言語は」と書いたのに、あなたの出す言語に一個も関数型言語は入ってないのだが…。
普通にできるジェネリック関数とか区別せずに、全ての関数でできる。
f = (+1)
g = print
h = g.f
h 1 =
2
と出力
mapM_ h [1..3] =
2
3
4
と出力
sequence_ [h 1, h 2, h 3] =
mapM_の時と同じ結果
(sequence_.tail) [h 1, h 2, h 3] =
3
4
と出力
関数型言語はオブジェクト指向じゃないのでオブジェクトは無いが…。
(OCamlならやCommon-Lispならオブジェクト指向もサポートしてるので、出来るかもしれないが)
というか、「全ての関数型言語は」と書いたのに、あなたの出す言語に一個も関数型言語は入ってないのだが…。
普通にできるジェネリック関数とか区別せずに、全ての関数でできる。
f = (+1)
g = print
h = g.f
h 1 =
2
と出力
mapM_ h [1..3] =
2
3
4
と出力
sequence_ [h 1, h 2, h 3] =
mapM_の時と同じ結果
(sequence_.tail) [h 1, h 2, h 3] =
3
4
と出力
400デフォルトの名無しさん
2024/10/20(日) 14:51:20.54ID:Rpp5gjxc あ、Haskell意外だと副作用のある関数の扱いは分からんが、普通の関数なら全ての関数型言語はできる。
むしろ、それがFP(関数プログラミング)で提唱されていること。
むしろ、それがFP(関数プログラミング)で提唱されていること。
401デフォルトの名無しさん
2024/10/20(日) 17:34:13.10ID:xPa/dMaC そして誰もツッコミすらしなくなった・・・
402デフォルトの名無しさん
2024/10/20(日) 17:43:19.05ID:IoIIyUOe >>398
「関数型」言い始めたのはその前の>387からだろ.
>390はその流れを受けているだけ.
>>393
もともとの話が>338(1,2,が同じことを言っているのか別のことを言っているのか)の話なんだから,その文脈での"Object"だよ.
とりあえずWikipediaの「第一級オブジェクト」あたりを下敷きにすればいいんじゃね?
ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%
> 普通にできるジェネリック関数とか区別せずに、全ての関数でできる。
ということだけど,Haskellとかの関数型言語って,mapとかの高階関数そのものを引数にしたり戻り値にしたりできたっけ?
「関数型」言い始めたのはその前の>387からだろ.
>390はその流れを受けているだけ.
>>393
もともとの話が>338(1,2,が同じことを言っているのか別のことを言っているのか)の話なんだから,その文脈での"Object"だよ.
とりあえずWikipediaの「第一級オブジェクト」あたりを下敷きにすればいいんじゃね?
ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%
> 普通にできるジェネリック関数とか区別せずに、全ての関数でできる。
ということだけど,Haskellとかの関数型言語って,mapとかの高階関数そのものを引数にしたり戻り値にしたりできたっけ?
403デフォルトの名無しさん
2024/10/20(日) 17:45:10.88ID:PyTRrFhl そろそろRustの話しろよ
404デフォルトの名無しさん
2024/10/20(日) 17:58:45.35ID:2ZyMYwfA >ということだけど,Haskellとかの関数型言語って,mapとかの高階関数そのものを引数にしたり戻り値にしたりできたっけ?
そらできるだろ
逆に関数がファーストクラスの言語でできないやつあるの?
そらできるだろ
逆に関数がファーストクラスの言語でできないやつあるの?
405デフォルトの名無しさん
2024/10/20(日) 18:04:59.62ID:jAtz6juv そもそもスレチで鮨
https://srad.jp/comment/135132
https://srad.jp/comment/135132
406デフォルトの名無しさん
2024/10/20(日) 18:07:49.61ID:gkezQsQG407デフォルトの名無しさん
2024/10/20(日) 18:16:41.15ID:Rpp5gjxc408デフォルトの名無しさん
2024/10/20(日) 18:20:10.46ID:IoIIyUOe >>406
もともとの話が>338(1,2,が同じことを言っているのか別のことを言っているのか)の話なんだから,その文脈での"関数"だよ.
> 「型無の関数型(言語)」の意味が通じてなさそうだからわざわざ言い直してるんじゃない?
「意味が通じてなさそう」とか言われても,「型無の関数型」自体が>387初出だから.>372に対してではなく自分に対して言い直しているのかしらん?
>407
できるのね.ありがとう.
そろそろ苦情が出てるしレスやめるわ.
もともとの話が>338(1,2,が同じことを言っているのか別のことを言っているのか)の話なんだから,その文脈での"関数"だよ.
> 「型無の関数型(言語)」の意味が通じてなさそうだからわざわざ言い直してるんじゃない?
「意味が通じてなさそう」とか言われても,「型無の関数型」自体が>387初出だから.>372に対してではなく自分に対して言い直しているのかしらん?
>407
できるのね.ありがとう.
そろそろ苦情が出てるしレスやめるわ.
409デフォルトの名無しさん
2024/10/20(日) 18:26:43.67ID:Rpp5gjxc カリー化してxsを見た目上消すのは関数を返すとみなせる。
f mf f = mf f
f mf f = mf f
410デフォルトの名無しさん
2024/10/20(日) 18:27:17.94ID:Rpp5gjxc あいよ
411デフォルトの名無しさん
2024/10/20(日) 18:37:12.50ID:+u+XD+zR 実現方法はキャプチャしたクロージャとかでもいいんだろ
他にも構造体とそれ用のメソッドを用意する形でも実現できる
関数という名に囚われて関数自体を返さなければいけないわけではない
他にも構造体とそれ用のメソッドを用意する形でも実現できる
関数という名に囚われて関数自体を返さなければいけないわけではない
412デフォルトの名無しさん
2024/10/20(日) 23:14:31.47ID:Bo7WX30F413デフォルトの名無しさん
2024/10/21(月) 09:54:32.14ID:WDt/GORo もう病気の類なんじゃないのかなこの人は
アスペを認めるとザワザワして発狂してしまうの?
アスペを認めるとザワザワして発狂してしまうの?
414デフォルトの名無しさん
2024/10/21(月) 14:02:30.37ID:n20TdxL4 >>392
話の流れは追ってないけど、東大文系学科中退のホリエモン、
(もともと所属学科が存在しない)ハーバード大で法律と数学
の単位を取って中退したビルゲイツと、Fラン大学でcs学科
専攻した人を比較するのはおかしいと思うな。
話の流れは追ってないけど、東大文系学科中退のホリエモン、
(もともと所属学科が存在しない)ハーバード大で法律と数学
の単位を取って中退したビルゲイツと、Fラン大学でcs学科
専攻した人を比較するのはおかしいと思うな。
415デフォルトの名無しさん
2024/10/21(月) 22:09:07.40ID:SnMtmJ3l416デフォルトの名無しさん
2024/10/21(月) 22:49:21.88ID:/PsiTyLC >>415
Lispのマクロは健全なマクロ(hygienic macro)ではない
Lispのマクロは健全なマクロ(hygienic macro)ではない
417デフォルトの名無しさん
2024/10/21(月) 23:05:26.66ID:hCFqhCaa >>415
Lispではコードもデータも全部同じS式なので
S式で書かれたコード片をそのままデータとして扱えるから
というのがLispのマクロが強力な最大の理由
でもこれは関数型の話とはあまり関係と思う
Lispではコードもデータも全部同じS式なので
S式で書かれたコード片をそのままデータとして扱えるから
というのがLispのマクロが強力な最大の理由
でもこれは関数型の話とはあまり関係と思う
418デフォルトの名無しさん
2024/10/22(火) 00:53:30.71ID:OQZ/hYZy >>415
lispマクロと関数型言語は関係なくね?
lispマクロと関数型言語は関係なくね?
419デフォルトの名無しさん
2024/10/22(火) 02:07:57.31ID:auCI67yl420デフォルトの名無しさん
2024/10/22(火) 06:02:08.36ID:rwk9TcPR >>415
lispマクロってCommon-Lispのマクロだよね?
SchemeやarcなどLisp系にも色々あるのに、Common-LispがいかにもLisp全体であるかのように言わないでいただきたい。
lispマクロってCommon-Lispのマクロだよね?
SchemeやarcなどLisp系にも色々あるのに、Common-LispがいかにもLisp全体であるかのように言わないでいただきたい。
421デフォルトの名無しさん
2024/10/22(火) 21:51:40.07ID:f0BQn25L ここはLispスレ?
422デフォルトの名無しさん
2024/10/22(火) 21:54:55.10ID:I9yNs4FT はい、そうです
423デフォルトの名無しさん
2024/10/22(火) 21:59:52.45ID:nxkbQsPd >>416
その点Rustは健全なマクロ(衛生的なマクロ)だから優れてるな
その点Rustは健全なマクロ(衛生的なマクロ)だから優れてるな
424デフォルトの名無しさん
2024/10/22(火) 22:50:58.38ID:yMGUdyDA425デフォルトの名無しさん
2024/10/22(火) 23:33:18.43ID:yd5fGGcj ラムダ計算が計算モデルに持つとは、例えば自然数やcons cellなどの値がすべてチャーチエンコーディング等の手法を利用してラムダ項による表現を持つという意味でしょうか
不可能ではないかもしれませんが、esolang以外ではあまり聞きませんな
不可能ではないかもしれませんが、esolang以外ではあまり聞きませんな
426デフォルトの名無しさん
2024/10/23(水) 00:17:49.94ID:+ikzunZs 型無しのラムダ計算だと
|f| f(f)
で自分に自分を渡すみたいな気持ち悪い事ができるけど
一般的な関数型言語の型付きラムダ計算だと無理なんだよね
macro_rules! combinator { ($f:expr) => { ($f)($f) }; }
とかしてもコンパイルできるcombinator!(f)が存在しないはず
何か裏技あるかもしれないけど
|f| f(f)
で自分に自分を渡すみたいな気持ち悪い事ができるけど
一般的な関数型言語の型付きラムダ計算だと無理なんだよね
macro_rules! combinator { ($f:expr) => { ($f)($f) }; }
とかしてもコンパイルできるcombinator!(f)が存在しないはず
何か裏技あるかもしれないけど
427デフォルトの名無しさん
2024/10/23(水) 00:50:41.84ID:uXSdyuX/428デフォルトの名無しさん
2024/10/23(水) 00:54:14.76ID:XMcvf1I0 >>423
健全なマクロは健全にしか出来ないんだよ。
意図的に衝突させるという自由は奪われる。
普通にしてたら健全なマクロになりつつ必要なときにはそうじゃない選択もあって欲しい。
健全なマクロが優れているということはない。
状況による。
健全なマクロは健全にしか出来ないんだよ。
意図的に衝突させるという自由は奪われる。
普通にしてたら健全なマクロになりつつ必要なときにはそうじゃない選択もあって欲しい。
健全なマクロが優れているということはない。
状況による。
429デフォルトの名無しさん
2024/10/23(水) 01:19:20.88ID:wus7H+cg430デフォルトの名無しさん
2024/10/23(水) 08:51:56.69ID:4l11/KhE >>429
そういうなら根拠を提示しなよ
そういうなら根拠を提示しなよ
431デフォルトの名無しさん
2024/10/23(水) 09:46:54.15ID:reDRncMZ まあ「コーダーのミスを許さない」というRustのコンセプト的には、余計な束縛をしない健全マクロのほうがビックリネタ減るわな。
432デフォルトの名無しさん
2024/10/23(水) 12:28:40.45ID:wus7H+cg433デフォルトの名無しさん
2024/10/23(水) 12:55:59.93ID:E1QNIy5A >>427
macro_rules! combinator { ($f:expr) => { ($f)($f) }; }
↓
macro_rules! combinator { ($f:expr) => { (($f)($f)) }; }
にしないと抜け道があるなw
これだからマクロは苦手
macro_rules! combinator { ($f:expr) => { ($f)($f) }; }
↓
macro_rules! combinator { ($f:expr) => { (($f)($f)) }; }
にしないと抜け道があるなw
これだからマクロは苦手
434デフォルトの名無しさん
2024/10/23(水) 13:44:18.19ID:uXSdyuX/ >>433
変えても何も変わらないし、関係ない
マクロで定義してるこのcombinatorを関数にして型を付けようとすると、Haskellで言うRank2Types拡張相当のリッチな型が必要で、それは必ずしも「一般的な関数型言語の型」ではないという話なら分かる
変えても何も変わらないし、関係ない
マクロで定義してるこのcombinatorを関数にして型を付けようとすると、Haskellで言うRank2Types拡張相当のリッチな型が必要で、それは必ずしも「一般的な関数型言語の型」ではないという話なら分かる
435デフォルトの名無しさん
2024/10/23(水) 14:16:45.58ID:CetgrrtL >>423
proc_macro2 は
proc_macro2 は
436デフォルトの名無しさん
2024/10/23(水) 15:08:29.40ID:XMcvf1I0437デフォルトの名無しさん
2024/10/23(水) 15:49:07.30ID:CetgrrtL お前らなんか作ってんの?
438デフォルトの名無しさん
2024/10/23(水) 18:08:14.82ID:XMcvf1I0 身バレするから詳しいことは言えないんだ。
匿名前提のコミュニティの制約だからしょうがない
匿名前提のコミュニティの制約だからしょうがない
439デフォルトの名無しさん
2024/10/23(水) 20:22:42.34ID:cjlpqfP+440デフォルトの名無しさん
2024/10/23(水) 22:12:20.50ID:IFkNXH06441デフォルトの名無しさん
2024/10/24(木) 07:52:11.99ID:ZozkKVrc442デフォルトの名無しさん
2024/10/24(木) 10:38:00.79ID:nzvp2PCa443デフォルトの名無しさん
2024/10/24(木) 10:45:57.96ID:EC4ipT+P Rustは、ASTを使ったマクロが書けるということみたいですが、
それについて詳しい書籍は有りませんか?
それについて詳しい書籍は有りませんか?
444デフォルトの名無しさん
2024/10/24(木) 11:20:06.71ID:Izj+Eszj AST操作ができるという意味では、Lispマクロと同等の能力を持つマクロを持つ言語は他にもあれど
AST自体がS式で非常に簡潔だからマクロを書くために追加で学習する事項はほとんどないし、言語実装側もかんたん、というのがLispマクロの特色と言えるかもね
AST自体がS式で非常に簡潔だからマクロを書くために追加で学習する事項はほとんどないし、言語実装側もかんたん、というのがLispマクロの特色と言えるかもね
445デフォルトの名無しさん
2024/10/24(木) 11:46:01.90ID:oHvtQW/4 >>443
本は知らんけどネットの情報だけで充分に学習出来た(経験談)
本は知らんけどネットの情報だけで充分に学習出来た(経験談)
446デフォルトの名無しさん
2024/10/24(木) 12:02:07.13ID:nzvp2PCa447デフォルトの名無しさん
2024/10/24(木) 14:32:18.09ID:dQJ9Pscb >>442
だからそういうことでしょ。
マクロは関数型言語・関数型プログラミングと直接関係無いし、Lispマクロが強力なのはASTを直接操作するメタプログラミングだからであって関数~~と直接関係無い。
だからそういうことでしょ。
マクロは関数型言語・関数型プログラミングと直接関係無いし、Lispマクロが強力なのはASTを直接操作するメタプログラミングだからであって関数~~と直接関係無い。
448デフォルトの名無しさん
2024/10/24(木) 16:46:48.00ID:zniBHQh+ 昔CommonLispでゲームサーバーとか作ってたけどね。マクロ書くのが楽なのは良かったね。
どちらかというと稼働中なサーバー止めずに関数単位でビルドできるとか型を指定して最適化しやすいってのがいい所だったけど真っ当なlispはAllegro Commom Lisp ぐらいしかないし、高くて勧められない。
今はもうrustの方が圧倒的に便利だし、マクロも必要十分と思ってる。s式だけに拘る理由はないよ。
どちらかというと稼働中なサーバー止めずに関数単位でビルドできるとか型を指定して最適化しやすいってのがいい所だったけど真っ当なlispはAllegro Commom Lisp ぐらいしかないし、高くて勧められない。
今はもうrustの方が圧倒的に便利だし、マクロも必要十分と思ってる。s式だけに拘る理由はないよ。
449デフォルトの名無しさん
2024/10/24(木) 17:02:46.99ID:zniBHQh+ マクロで抽象度高めるのはいいけど、やりすぎると自分以外に分からないDSLになる。程々でいいのよ。
Rustは頑張ればなんでも書けるマクロがあるけど、クレート分けたりちょっと面倒なんで程々で収まる。素人が手を出さない。ライブラリ作るような人だけ頑張ればいいの。
Rustは頑張ればなんでも書けるマクロがあるけど、クレート分けたりちょっと面倒なんで程々で収まる。素人が手を出さない。ライブラリ作るような人だけ頑張ればいいの。
450デフォルトの名無しさん
2024/10/24(木) 17:49:54.17ID:H1OVOnXq 乱数が標準ライブラリーで使えないなんて言語ある?
451デフォルトの名無しさん
2024/10/24(木) 18:03:21.93ID:Vyb04yis >>450
RandomStateが標準ライブラリにある
用途が極少数ならそのまま使ってもよい
用途が多数なら枯渇するためシードとして用いる
シードからの生成アルゴリズムはその性質に応じて無数にあるため標準ライブラリの対象外
RandomStateが標準ライブラリにある
用途が極少数ならそのまま使ってもよい
用途が多数なら枯渇するためシードとして用いる
シードからの生成アルゴリズムはその性質に応じて無数にあるため標準ライブラリの対象外
452デフォルトの名無しさん
2024/10/24(木) 19:26:04.63ID:Izj+Eszj >>451
RandomStateで乱数生成やったことないんだけど具体的にどうやるの?
RandomStateで乱数生成やったことないんだけど具体的にどうやるの?
453デフォルトの名無しさん
2024/10/24(木) 19:51:11.78ID:Vyb04yis use std::hash::{BuildHasher, RandomState};
let random_seed: u64 = RandomState::new().hash_one(0_u64);
あとはこのシードからお好みのアルゴリズムで生成
let random_seed: u64 = RandomState::new().hash_one(0_u64);
あとはこのシードからお好みのアルゴリズムで生成
454デフォルトの名無しさん
2024/10/24(木) 20:30:14.64ID:Izj+Eszj >>453
結局標準ライブラリでは乱数生成できないってことね、OK
結局標準ライブラリでは乱数生成できないってことね、OK
455デフォルトの名無しさん
2024/10/24(木) 20:46:28.29ID:Vyb04yis456デフォルトの名無しさん
2024/10/24(木) 21:26:15.04ID:AJVkLJ3Q いやシードと乱数は違うでしょ
「テスト用の適当な数値が欲しい」くらいの用途には使えないこともないけど
「テスト用の適当な数値が欲しい」くらいの用途には使えないこともないけど
457デフォルトの名無しさん
2024/10/24(木) 21:35:49.51ID:Vyb04yis 理解できない人向けにどうぞ
use std::hash::{BuildHasher, RandomState};
let random_value: u64 = RandomState::new().hash_one(0_u64);
ここで得られる値は乱数値
(シード値としても使えることを書いただけで混乱して理解できなくなる人がいるとは想定できずにごめんね)
use std::hash::{BuildHasher, RandomState};
let random_value: u64 = RandomState::new().hash_one(0_u64);
ここで得られる値は乱数値
(シード値としても使えることを書いただけで混乱して理解できなくなる人がいるとは想定できずにごめんね)
458デフォルトの名無しさん
2024/10/24(木) 22:02:47.28ID:2EUVLZAU459デフォルトの名無しさん
2024/10/24(木) 22:11:35.63ID:wLVwsEMS そんなんでごまかせるわけないだろw
ワロタ
ワロタ
460デフォルトの名無しさん
2024/10/24(木) 22:18:39.07ID:g+5KBp/6 >>457で得られる値はgetrandomシステムコールや/dev/urandomから得ているので正真正銘の乱数値
461デフォルトの名無しさん
2024/10/24(木) 22:40:22.29ID:BfhK7+JQ なんでこの程度の内容で議論が発生して第三者の解説が必要になるんだよ
462デフォルトの名無しさん
2024/10/24(木) 22:41:20.63ID:wLVwsEMS なんかnightlyにあったわ、つい最近のやつじゃん
そのゴミ生成器片付けとけよ
https://doc.rust-lang.org/nightly/std/random/index.html
https://github.com/rust-lang/rust/issues/130703
そのゴミ生成器片付けとけよ
https://doc.rust-lang.org/nightly/std/random/index.html
https://github.com/rust-lang/rust/issues/130703
463デフォルトの名無しさん
2024/10/24(木) 22:52:15.99ID:g+5KBp/6 Rustの標準ライブラリはHashMapなどで使われる安全なハッシュをサポートするために各OS環境から正真正銘の乱数を得ていてそれが>>457
464デフォルトの名無しさん
2024/10/25(金) 01:03:47.43ID:Y++YkFSY >>462
これまで、標準ライブラリで乱数をサポートしないのがRustらしさだと擁護してきた信者の気持ちを踏みにじるような機能追加だな
これまで、標準ライブラリで乱数をサポートしないのがRustらしさだと擁護してきた信者の気持ちを踏みにじるような機能追加だな
465デフォルトの名無しさん
2024/10/25(金) 01:53:32.00ID:xvw9KCma466デフォルトの名無しさん
2024/10/25(金) 02:10:41.48ID:SHu6FAIt それが複オジクオリティw
467デフォルトの名無しさん
2024/10/25(金) 11:31:42.20ID:fr1AC94B Rust信者はRustが素晴らしいという前提から出発しているから、どんな現状でも追認するしかないんだよね
468デフォルトの名無しさん
2024/10/25(金) 11:40:01.29ID:1Wl1tm3d 信者てここには一人しかおらんやん
乱数とハッシュ値の違いも分からん信者wだけど
乱数とハッシュ値の違いも分からん信者wだけど
469デフォルトの名無しさん
2024/10/25(金) 20:43:07.49ID:Mvi3fEJ3 iOS/Androidに対応した「Tauri 2.0」が公開 ~「Rust」が使えるアプリフレームワーク
https://forest.watch.impress.co.jp/docs/news/1628498.html
https://forest.watch.impress.co.jp/docs/news/1628498.html
470デフォルトの名無しさん
2024/10/25(金) 21:10:43.49ID:jlqDauPO くやしいのうwくやしいのうw
471デフォルトの名無しさん
2024/10/25(金) 22:12:28.52ID:HbwYxM+j 話題を変えて無かったことにして欲しいらしいw
追い裏金の話を闇バイト強盗の話で誤魔化そうとしてもダメだろ〜
追い裏金の話を闇バイト強盗の話で誤魔化そうとしてもダメだろ〜
472デフォルトの名無しさん
2024/10/25(金) 22:52:21.52ID:JoNG8t7V473デフォルトの名無しさん
2024/10/25(金) 23:39:25.27ID:wDVIpXT3 乱数は用途によって必要な性質が違うのであまり標準に入れて欲しくないが
インターフェイスは標準で決めて欲しいとは思う。
インターフェイスは標準で決めて欲しいとは思う。
474デフォルトの名無しさん
2024/10/25(金) 23:45:41.75ID:7THBsPfL 乱数を標準ライブラリに入れてない頭おかしい言語って他にもあるの?
475デフォルトの名無しさん
2024/10/26(土) 00:10:22.27ID:zGz4kG9y あっても使い物にならないのとかあるしなぁ。
ECMAScript (JavaScript) とか C とかの乱数は使いものにならないから実質的に無いのと同じだし、意味のないものを入れるくらいなら入れないほうがマシ。
ECMAScript (JavaScript) とか C とかの乱数は使いものにならないから実質的に無いのと同じだし、意味のないものを入れるくらいなら入れないほうがマシ。
476デフォルトの名無しさん
2024/10/26(土) 00:22:27.42ID:zGz4kG9y 本当に頭のいい人たちが検証を重ねて世に送り出したモノが使い物にならないとはどういうところを言うのですか?
478デフォルトの名無しさん
2024/10/26(土) 00:44:55.37ID:IoqxjKuL 本当に頭のいい人たちが検証を重ねて世に送り出したモノではないというところですね……
そう言う自分も、無批判には使わずに一様性を検定するなどしてから使うけど、信頼してないからではなく
480デフォルトの名無しさん
2024/10/26(土) 02:13:26.68ID:w49K9FL/ >>473
同意
同意
481デフォルトの名無しさん
2024/10/26(土) 08:44:00.93ID:jdoQvLux482デフォルトの名無しさん
2024/10/26(土) 10:04:40.94ID:zGz4kG9y >>481
標準ライブラリは言語仕様と不可分だ。
規格に書いてあるか、公式に standard library という用語で呼んでいるのが標準ライブラリだと考えている。
ただ、変な経緯を持つものや事実上の標準のように扱われるものはあるから……。
C++ では STL (Standard Template Library) は言語仕様に取り入れられる前から STL と名乗ってた。
Haskell や Ruby のように特定の処理系が一強の場合は規格を論じるのがあまり意味ない場合もあるし。
標準ライブラリは言語仕様と不可分だ。
規格に書いてあるか、公式に standard library という用語で呼んでいるのが標準ライブラリだと考えている。
ただ、変な経緯を持つものや事実上の標準のように扱われるものはあるから……。
C++ では STL (Standard Template Library) は言語仕様に取り入れられる前から STL と名乗ってた。
Haskell や Ruby のように特定の処理系が一強の場合は規格を論じるのがあまり意味ない場合もあるし。
483デフォルトの名無しさん
2024/10/26(土) 10:53:28.94ID:hjzg/CzG >>469
Tauriはゴミ
Tauriはゴミ
484デフォルトの名無しさん
2024/10/26(土) 11:44:59.52ID:OlAES+Uo Rustはライブラリをあまり取り込まない方針じゃなかったっけ?
変わったの?
変わったの?
485デフォルトの名無しさん
2024/10/26(土) 12:24:14.18ID:+FwZ39pi >>482
言語仕様と標準ライブラリ仕様の区別がついてないだけでなく規格と言語仕様の区別もついてないんだな
言語仕様と標準ライブラリ仕様の区別がついてないだけでなく規格と言語仕様の区別もついてないんだな
486デフォルトの名無しさん
2024/10/26(土) 12:27:05.83ID:Q0mTv4/1 >>473
物凄い支離滅裂な主張に感じるのは俺だけか?
物凄い支離滅裂な主張に感じるのは俺だけか?
487デフォルトの名無しさん
2024/10/26(土) 12:34:35.45ID:zGz4kG9y >>484
Rust の標準ライブラの基礎理念はエコシステムの基盤として最小限かつ実践的であること。
肥大化させるのは良くないが、だからといって有用なものまで避けたりはしない。
常識的に考えて主要なデータ構造は標準ライブラリに入れるし、
ハッシュテーブルのハッシュには乱数を使う (いわゆるソルト) のでどうせならそれをユーザ向けに公開したってよかろうという感じ。
RandomState が std::hash の下にあるのはそういうこと。
ハッシュをかき乱す要素を入れないと意図的にハッシュが衝突するデータを入力する攻撃が成立する可能性があるので、
それを避けるために乱数を混ぜ込むものなんだよ。
Rust の標準ライブラの基礎理念はエコシステムの基盤として最小限かつ実践的であること。
肥大化させるのは良くないが、だからといって有用なものまで避けたりはしない。
常識的に考えて主要なデータ構造は標準ライブラリに入れるし、
ハッシュテーブルのハッシュには乱数を使う (いわゆるソルト) のでどうせならそれをユーザ向けに公開したってよかろうという感じ。
RandomState が std::hash の下にあるのはそういうこと。
ハッシュをかき乱す要素を入れないと意図的にハッシュが衝突するデータを入力する攻撃が成立する可能性があるので、
それを避けるために乱数を混ぜ込むものなんだよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★2 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」★2 [Anonymous★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 【悲報】台湾「中国にパンダ返還した馬鹿な国があるらしい🤭」 [616817505]
- 【高市悲報】片山さつき、円安進行を受けコメント「為替の変動を緊張感を持って見極める」 [888298477]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
- 【高市悲報】アメリカ戦争省「あのさ、何回シミュレートしてもわーくに中国に負けちゃうんだよね🤗」 [359965264]
- 自民「高市の一言でこれまで積み上げてきた関係が駄目になる。言葉の重みを分かっていない。自分でまいた種は自分で刈り取ってもらう」 [256556981]
- 【悲報】かつて台湾を統治し中国大陸にまで侵略したジャップ「中国は台湾侵略するのやめろ!」 [616817505]
