Rust part26

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/09/20(金) 22:18:38.38ID:c48cFuZJ
公式
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/
408デフォルトの名無しさん
垢版 |
2024/10/20(日) 18:20:10.46ID:IoIIyUOe
>>406
もともとの話が>338(1,2,が同じことを言っているのか別のことを言っているのか)の話なんだから,その文脈での"関数"だよ.

> 「型無の関数型(言語)」の意味が通じてなさそうだからわざわざ言い直してるんじゃない?
「意味が通じてなさそう」とか言われても,「型無の関数型」自体が>387初出だから.>372に対してではなく自分に対して言い直しているのかしらん?

>407
できるのね.ありがとう.
そろそろ苦情が出てるしレスやめるわ.
409デフォルトの名無しさん
垢版 |
2024/10/20(日) 18:26:43.67ID:Rpp5gjxc
カリー化してxsを見た目上消すのは関数を返すとみなせる。

f mf f = mf f
410デフォルトの名無しさん
垢版 |
2024/10/20(日) 18:27:17.94ID:Rpp5gjxc
あいよ
2024/10/20(日) 18:37:12.50ID:+u+XD+zR
実現方法はキャプチャしたクロージャとかでもいいんだろ
他にも構造体とそれ用のメソッドを用意する形でも実現できる
関数という名に囚われて関数自体を返さなければいけないわけではない
2024/10/20(日) 23:14:31.47ID:Bo7WX30F
>>406
そりゃねえ、関数型言語の定義の議論をしているところにいきなり「型無の関数型(言語)がありえる」なんてのを
根拠に持ち出したら意味が通じないわ。
2024/10/21(月) 09:54:32.14ID:WDt/GORo
もう病気の類なんじゃないのかなこの人は
アスペを認めるとザワザワして発狂してしまうの?
2024/10/21(月) 14:02:30.37ID:n20TdxL4
>>392
話の流れは追ってないけど、東大文系学科中退のホリエモン、
(もともと所属学科が存在しない)ハーバード大で法律と数学
の単位を取って中退したビルゲイツと、Fラン大学でcs学科
専攻した人を比較するのはおかしいと思うな。
2024/10/21(月) 22:09:07.40ID:SnMtmJ3l
>>378
パターンマッチ有り無しとか些末すぎる
lispマクロがなぜ強力なのかを理論的に説明できないやつは関数型言語が何かを理解できてない
2024/10/21(月) 22:49:21.88ID:/PsiTyLC
>>415
Lispのマクロは健全なマクロ(hygienic macro)ではない
2024/10/21(月) 23:05:26.66ID:hCFqhCaa
>>415
Lispではコードもデータも全部同じS式なので
S式で書かれたコード片をそのままデータとして扱えるから
というのがLispのマクロが強力な最大の理由

でもこれは関数型の話とはあまり関係と思う
418デフォルトの名無しさん
垢版 |
2024/10/22(火) 00:53:30.71ID:OQZ/hYZy
>>415
lispマクロと関数型言語は関係なくね?
2024/10/22(火) 02:07:57.31ID:auCI67yl
>>417
それがあのシンプルな言語仕様で実現できるのはラムダ計算を計算モデルに持つから
それが関数型言語のパワーを端的に表している
420デフォルトの名無しさん
垢版 |
2024/10/22(火) 06:02:08.36ID:rwk9TcPR
>>415
lispマクロってCommon-Lispのマクロだよね?
SchemeやarcなどLisp系にも色々あるのに、Common-LispがいかにもLisp全体であるかのように言わないでいただきたい。
421デフォルトの名無しさん
垢版 |
2024/10/22(火) 21:51:40.07ID:f0BQn25L
ここはLispスレ?
2024/10/22(火) 21:54:55.10ID:I9yNs4FT
はい、そうです
2024/10/22(火) 21:59:52.45ID:nxkbQsPd
>>416
その点Rustは健全なマクロ(衛生的なマクロ)だから優れてるな
2024/10/22(火) 22:50:58.38ID:yMGUdyDA
>>419
ラムダ計算をベースとしてるのはLispに限った話じゃないので
Lispのマクロが他に比べて強力な理由にはならないよね?
2024/10/22(火) 23:33:18.43ID:yd5fGGcj
ラムダ計算が計算モデルに持つとは、例えば自然数やcons cellなどの値がすべてチャーチエンコーディング等の手法を利用してラムダ項による表現を持つという意味でしょうか
不可能ではないかもしれませんが、esolang以外ではあまり聞きませんな
2024/10/23(水) 00:17:49.94ID:+ikzunZs
型無しのラムダ計算だと
|f| f(f)
で自分に自分を渡すみたいな気持ち悪い事ができるけど
一般的な関数型言語の型付きラムダ計算だと無理なんだよね

macro_rules! combinator { ($f:expr) => { ($f)($f) }; }
とかしてもコンパイルできるcombinator!(f)が存在しないはず
何か裏技あるかもしれないけど
2024/10/23(水) 00:50:41.84ID:uXSdyuX/
>>426
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4e875602eb434b87811e7f8043069df1

別に裏技っぽいことは何もいらないが……
2024/10/23(水) 00:54:14.76ID:XMcvf1I0
>>423
健全なマクロは健全にしか出来ないんだよ。
意図的に衝突させるという自由は奪われる。
普通にしてたら健全なマクロになりつつ必要なときにはそうじゃない選択もあって欲しい。
健全なマクロが優れているということはない。
状況による。
2024/10/23(水) 01:19:20.88ID:wus7H+cg
>>428
常に健全なマクロが優秀
https://ja.wikipedia.org/wiki/%E5%81%A5%E5%85%A8%E3%81%AA%E3%83%9E%E3%82%AF%E3%83%AD
2024/10/23(水) 08:51:56.69ID:4l11/KhE
>>429
そういうなら根拠を提示しなよ
2024/10/23(水) 09:46:54.15ID:reDRncMZ
まあ「コーダーのミスを許さない」というRustのコンセプト的には、余計な束縛をしない健全マクロのほうがビックリネタ減るわな。
2024/10/23(水) 12:28:40.45ID:wus7H+cg
>>430
健全なマクロが優秀である根拠は>>429で示した
2024/10/23(水) 12:55:59.93ID:E1QNIy5A
>>427
macro_rules! combinator { ($f:expr) => { ($f)($f) }; }

macro_rules! combinator { ($f:expr) => { (($f)($f)) }; }
にしないと抜け道があるなw
これだからマクロは苦手
2024/10/23(水) 13:44:18.19ID:uXSdyuX/
>>433
変えても何も変わらないし、関係ない
マクロで定義してるこのcombinatorを関数にして型を付けようとすると、Haskellで言うRank2Types拡張相当のリッチな型が必要で、それは必ずしも「一般的な関数型言語の型」ではないという話なら分かる
435デフォルトの名無しさん
垢版 |
2024/10/23(水) 14:16:45.58ID:CetgrrtL
>>423
proc_macro2 は
2024/10/23(水) 15:08:29.40ID:XMcvf1I0
>>432
書かれてないぞ。
どの部分のことを言ってる?
437デフォルトの名無しさん
垢版 |
2024/10/23(水) 15:49:07.30ID:CetgrrtL
お前らなんか作ってんの?
2024/10/23(水) 18:08:14.82ID:XMcvf1I0
身バレするから詳しいことは言えないんだ。
匿名前提のコミュニティの制約だからしょうがない
2024/10/23(水) 20:22:42.34ID:cjlpqfP+
>>428
Rustのmacro_rulesで宣言されるマクロは健全なマクロだけど
敢えてローカルスコープでマクロ宣言すれば不健全にローカル変数をそのまま使えるため両対応しているよ

>>435
手続きマクロは解析木を入力に自在だね
2024/10/23(水) 22:12:20.50ID:IFkNXH06
>>426
untypedのラムダ計算をベースにしてる言語は
Lispだけでも関数型の言語だけでもないよね

>>415で言ってたLispのマクロが強力さっていうのは
Lisp特有の話じゃなかったってことでいいのかな?
だとしたら俺の考える強力さとは違ってた
2024/10/24(木) 07:52:11.99ID:ZozkKVrc
>>440
ASTを生成するコードを作れるのは大抵強力だろ。
全然別のアプローチとしてFORTHのIMMEDIATE POSTPONEみたいなのもあるけど。
2024/10/24(木) 10:38:00.79ID:nzvp2PCa
>>441
>ASTを生成するコードを作れる
若干意味が曖昧だけどASTをいじれれば強力ということなら
それはLispに限らないし関数型言語にも限らないので
関数型言語や関数型の定義との関連は薄い
2024/10/24(木) 10:45:57.96ID:EC4ipT+P
Rustは、ASTを使ったマクロが書けるということみたいですが、
それについて詳しい書籍は有りませんか?
2024/10/24(木) 11:20:06.71ID:Izj+Eszj
AST操作ができるという意味では、Lispマクロと同等の能力を持つマクロを持つ言語は他にもあれど
AST自体がS式で非常に簡潔だからマクロを書くために追加で学習する事項はほとんどないし、言語実装側もかんたん、というのがLispマクロの特色と言えるかもね
2024/10/24(木) 11:46:01.90ID:oHvtQW/4
>>443
本は知らんけどネットの情報だけで充分に学習出来た(経験談)
2024/10/24(木) 12:02:07.13ID:nzvp2PCa
>>443
本じゃないけどdtolnayのprocedural macros workshop
本ならManningのマクロ本
2024/10/24(木) 14:32:18.09ID:dQJ9Pscb
>>442
だからそういうことでしょ。

マクロは関数型言語・関数型プログラミングと直接関係無いし、Lispマクロが強力なのはASTを直接操作するメタプログラミングだからであって関数~~と直接関係無い。
2024/10/24(木) 16:46:48.00ID:zniBHQh+
昔CommonLispでゲームサーバーとか作ってたけどね。マクロ書くのが楽なのは良かったね。
どちらかというと稼働中なサーバー止めずに関数単位でビルドできるとか型を指定して最適化しやすいってのがいい所だったけど真っ当なlispはAllegro Commom Lisp ぐらいしかないし、高くて勧められない。
今はもうrustの方が圧倒的に便利だし、マクロも必要十分と思ってる。s式だけに拘る理由はないよ。
2024/10/24(木) 17:02:46.99ID:zniBHQh+
マクロで抽象度高めるのはいいけど、やりすぎると自分以外に分からないDSLになる。程々でいいのよ。
Rustは頑張ればなんでも書けるマクロがあるけど、クレート分けたりちょっと面倒なんで程々で収まる。素人が手を出さない。ライブラリ作るような人だけ頑張ればいいの。
450デフォルトの名無しさん
垢版 |
2024/10/24(木) 17:49:54.17ID:H1OVOnXq
乱数が標準ライブラリーで使えないなんて言語ある?
2024/10/24(木) 18:03:21.93ID:Vyb04yis
>>450
RandomStateが標準ライブラリにある
用途が極少数ならそのまま使ってもよい
用途が多数なら枯渇するためシードとして用いる
シードからの生成アルゴリズムはその性質に応じて無数にあるため標準ライブラリの対象外
2024/10/24(木) 19:26:04.63ID:Izj+Eszj
>>451
RandomStateで乱数生成やったことないんだけど具体的にどうやるの?
2024/10/24(木) 19:51:11.78ID:Vyb04yis
use std::hash::{BuildHasher, RandomState};
let random_seed: u64 = RandomState::new().hash_one(0_u64);
あとはこのシードからお好みのアルゴリズムで生成
2024/10/24(木) 20:30:14.64ID:Izj+Eszj
>>453
結局標準ライブラリでは乱数生成できないってことね、OK
2024/10/24(木) 20:46:28.29ID:Vyb04yis
>>454
乱数値を得られていることを理解できない?
シードは乱数値
別のものだと思った?
456デフォルトの名無しさん
垢版 |
2024/10/24(木) 21:26:15.04ID:AJVkLJ3Q
いやシードと乱数は違うでしょ
「テスト用の適当な数値が欲しい」くらいの用途には使えないこともないけど
2024/10/24(木) 21:35:49.51ID:Vyb04yis
理解できない人向けにどうぞ
use std::hash::{BuildHasher, RandomState};
let random_value: u64 = RandomState::new().hash_one(0_u64);
ここで得られる値は乱数値

(シード値としても使えることを書いただけで混乱して理解できなくなる人がいるとは想定できずにごめんね)
2024/10/24(木) 22:02:47.28ID:2EUVLZAU
さすが複オジクオリティw

>>454
素直にrand使ってね
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
なんでこの程度の内容で議論が発生して第三者の解説が必要になるんだよ
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
463デフォルトの名無しさん
垢版 |
2024/10/24(木) 22:52:15.99ID:g+5KBp/6
Rustの標準ライブラリはHashMapなどで使われる安全なハッシュをサポートするために各OS環境から正真正銘の乱数を得ていてそれが>>457
2024/10/25(金) 01:03:47.43ID:Y++YkFSY
>>462
これまで、標準ライブラリで乱数をサポートしないのがRustらしさだと擁護してきた信者の気持ちを踏みにじるような機能追加だな
2024/10/25(金) 01:53:32.00ID:xvw9KCma
>>464
あれはただの現状追認主義者だから、今日以降同じことを聞かれたら何食わぬ顔でstd::randomがnightlyにあるぞと言い始めるんだろう
まったくくだらない手合いだ
2024/10/25(金) 02:10:41.48ID:SHu6FAIt
それが複オジクオリティw
467デフォルトの名無しさん
垢版 |
2024/10/25(金) 11:31:42.20ID:fr1AC94B
Rust信者はRustが素晴らしいという前提から出発しているから、どんな現状でも追認するしかないんだよね
2024/10/25(金) 11:40:01.29ID:1Wl1tm3d
信者てここには一人しかおらんやん
乱数とハッシュ値の違いも分からん信者wだけど
2024/10/25(金) 20:43:07.49ID:Mvi3fEJ3
iOS/Androidに対応した「Tauri 2.0」が公開 ~「Rust」が使えるアプリフレームワーク
https://forest.watch.impress.co.jp/docs/news/1628498.html
2024/10/25(金) 21:10:43.49ID:jlqDauPO
くやしいのうwくやしいのうw
2024/10/25(金) 22:12:28.52ID:HbwYxM+j
話題を変えて無かったことにして欲しいらしいw
追い裏金の話を闇バイト強盗の話で誤魔化そうとしてもダメだろ〜
2024/10/25(金) 22:52:21.52ID:JoNG8t7V
>>454
できる
デフォルトハッシャーでも使っている
2024/10/25(金) 23:39:25.27ID:wDVIpXT3
乱数は用途によって必要な性質が違うのであまり標準に入れて欲しくないが
インターフェイスは標準で決めて欲しいとは思う。
2024/10/25(金) 23:45:41.75ID:7THBsPfL
乱数を標準ライブラリに入れてない頭おかしい言語って他にもあるの?
2024/10/26(土) 00:10:22.27ID:zGz4kG9y
あっても使い物にならないのとかあるしなぁ。
ECMAScript (JavaScript) とか C とかの乱数は使いものにならないから実質的に無いのと同じだし、意味のないものを入れるくらいなら入れないほうがマシ。
2024/10/26(土) 00:22:27.42ID:zGz4kG9y
>>474
言語仕様に書かれていないという意味では、メジャーな言語で言えば Haksell とか Scheme とか。
「標準ライブラリ」というのがどこまでの範囲を指すかにもよるので微妙な話だが。
2024/10/26(土) 00:32:15.24ID:YgyN66sk
本当に頭のいい人たちが検証を重ねて世に送り出したモノが使い物にならないとはどういうところを言うのですか?
2024/10/26(土) 00:44:55.37ID:IoqxjKuL
本当に頭のいい人たちが検証を重ねて世に送り出したモノではないというところですね……
2024/10/26(土) 01:00:53.03ID:YgyN66sk
そう言う自分も、無批判には使わずに一様性を検定するなどしてから使うけど、信頼してないからではなく
480デフォルトの名無しさん
垢版 |
2024/10/26(土) 02:13:26.68ID:w49K9FL/
>>473
同意
2024/10/26(土) 08:44:00.93ID:jdoQvLux
>>476
言語仕様と標準ライブラリの区別もつかんのかーいw

言語仕様に乱数生成ライブラリの定義がある方がむしろ珍しいだろ
2024/10/26(土) 10:04:40.94ID:zGz4kG9y
>>481
標準ライブラリは言語仕様と不可分だ。
規格に書いてあるか、公式に standard library という用語で呼んでいるのが標準ライブラリだと考えている。

ただ、変な経緯を持つものや事実上の標準のように扱われるものはあるから……。
C++ では STL (Standard Template Library) は言語仕様に取り入れられる前から STL と名乗ってた。

Haskell や Ruby のように特定の処理系が一強の場合は規格を論じるのがあまり意味ない場合もあるし。
2024/10/26(土) 10:53:28.94ID:hjzg/CzG
>>469
Tauriはゴミ
2024/10/26(土) 11:44:59.52ID:OlAES+Uo
Rustはライブラリをあまり取り込まない方針じゃなかったっけ?
変わったの?
2024/10/26(土) 12:24:14.18ID:+FwZ39pi
>>482
言語仕様と標準ライブラリ仕様の区別がついてないだけでなく規格と言語仕様の区別もついてないんだな
2024/10/26(土) 12:27:05.83ID:Q0mTv4/1
>>473
物凄い支離滅裂な主張に感じるのは俺だけか?
2024/10/26(土) 12:34:35.45ID:zGz4kG9y
>>484
Rust の標準ライブラの基礎理念はエコシステムの基盤として最小限かつ実践的であること。
肥大化させるのは良くないが、だからといって有用なものまで避けたりはしない。

常識的に考えて主要なデータ構造は標準ライブラリに入れるし、
ハッシュテーブルのハッシュには乱数を使う (いわゆるソルト) のでどうせならそれをユーザ向けに公開したってよかろうという感じ。
RandomState が std::hash の下にあるのはそういうこと。

ハッシュをかき乱す要素を入れないと意図的にハッシュが衝突するデータを入力する攻撃が成立する可能性があるので、
それを避けるために乱数を混ぜ込むものなんだよ。
2024/10/26(土) 12:36:36.70ID:zGz4kG9y
>>485
区別を付けてるから言葉を使い分けてる。
2024/10/26(土) 12:43:45.54ID:zGz4kG9y
>>486
Rust ならライブラリのインターフェイスはトレイトの形で決められるだろ。
トレイトを標準ライブラリとして用意して実装は外部のクレートに任せればよいという意味だが、なんか不自然なところある?
スレッド関係とかはそうなってるのもあると思うが。
2024/10/26(土) 12:58:01.15ID:IoqxjKuL
>>489
スレッド関係というのは具体的にはFutureのことか?
あれはasync/awaitのために必要だけど、今のところ乱数にはそれと同レベルの必要性はないじゃろ
2024/10/26(土) 14:44:24.24ID:82EWlGrQ
>>487
ハッシュテーブルのハッシュにソルト必要か?
492デフォルトの名無しさん
垢版 |
2024/10/26(土) 15:08:22.43ID:hjzg/CzG
saltは乱数ではないよ
2024/10/26(土) 21:33:32.55ID:QHYclvz0
乱数は2種類ある
1つは擬似乱数で与えられたシード(初期値)から出発して各アルゴリズムで順に生成していく
同じシードなら同じ生成列になってしまい時刻情報などをシードとして用いても推測されると生成列がバレてしまう
そこでもう1つの自然乱数をシードとして用いることで問題を解決できる
この自然乱数は計算ではなく外部のエントロピーなどから得る
これは各OS環境などでバラバラに提供されている
2024/10/26(土) 21:36:01.18ID:QHYclvz0
Rustがstd::randomで提供しようとしているのは擬似乱数ではなく自然乱数の方
もちろん自然乱数も様々なものが使える環境もあるためtrait RandomSourceを用意している
そして各環境毎に標準的に使えそうな実装をDefaultRandomSourceとして提供している
2024/10/26(土) 21:40:12.79ID:QHYclvz0
つまり擬似乱数の各アルゴリズムを実装しているクレートなどの本体部分はこれまで通り
それらの中でシードのために利用する自然乱数の取得を各環境別に書いていた部分がstd::randomを利用できるようになる
このために自然乱数の提供を標準ライブラリに入れようとしている
2024/10/26(土) 21:43:58.25ID:QHYclvz0
ちなみにHashDos攻撃を避けるために標準ライブラリのHashMapは以前から自然乱数を利用するコードとなっている
そのため我々は以前から>>457のコードの形で現行の標準ライブラリでも自然乱数を間接的に得ることができる
いずれstd::randomが安定化すると自然乱数を直接的に得られるようになる
2024/10/26(土) 22:18:58.17ID:j2ddNQEF
今日一日勉強した成果がこれかぁ

>>493
前半の話はPRNG(deterministic)とCSPRNG(unpredictable and non-deterministic)の違いで
PRNGのシードもほとんどのケースは自然乱数(真の乱数)ではなくCSPRNGを使った疑似乱数

>>494
std::randomが提供しようとしているのはCSPRNGだけでなくPRNGも検討されている
https://github.com/rust-lang/rust/issues/131606

つまり…
>>495の結論は間違いだらけ
がんばれ〜
2024/10/26(土) 22:23:14.55ID:IoqxjKuL
長々と書いてるがやっぱりまだ「シード=乱数値」と思っていそうな、それを再確認するためにチェリーピッキングしたフシがあるように読めるな……

>>496
https://doc.rust-lang.org/src/std/hash/random.rs.html#67
RandomState::newで「自然乱数」を読むのはTLSにあるKEYSを初期化するときただ1回きりなのだが、それは特に問題だと思っていないという認識で良いか
2024/10/26(土) 22:37:43.22ID:j2ddNQEF
>>498
自然乱数ではないのは>>497で書いた通り

HashDos対策的にはHashMap等の各インスタンスにつき1回しか読まないので十分
それに複数回読んだら同じ入力値に対してハッシュ値が変わるのでHashMapが機能しなくなる
2024/10/26(土) 22:46:16.13ID:IoqxjKuL
>>499
???
あんたには聞いてないし、何から何まで間違っとるよ
501デフォルトの名無しさん
垢版 |
2024/10/26(土) 22:56:45.07ID:sdYu6ROK
>>497
その決めつけはおかしいな
自然環境ノイズに基づく自然乱数が得られる環境では自然乱数が使われているよ
例えばLinuxやMac含めてUnix系ならば/dev/randomと/dev/urandomやシステムコール化したgetrandomがあり
Rustでも用いているよ
2024/10/27(日) 02:58:36.94ID:ovJMtE5q
>>501
getrandomはハードウェアから得られた値を直接返してるんじゃなく
それらをシードにして生成した疑似乱数を返してるんだよ
503デフォルトの名無しさん
垢版 |
2024/10/27(日) 09:03:06.72ID:b1uLb42O
そもそも外部のエントロピーで自然乱数列を生成出来るなら
わざわざそれをシードにして別の自然乱数列を造る必要無くね?
504デフォルトの名無しさん
垢版 |
2024/10/27(日) 11:20:29.17ID:0ovc+IwP
crates古いのしか無いと不安になるなω
sfmt 3年前
mersenne_twister (github dcrewi) 7年前
mersenne-twister (github mztikk) 1年前
rand_mt 数ヶ月
2024/10/27(日) 12:31:48.22ID:Den/VAK2
>>503
randomあたりのman
506デフォルトの名無しさん
垢版 |
2024/10/27(日) 14:02:01.43ID:j7g6Rtfs
自然乱数はランダムになるまで時間がかかるからな
短い間に何度も乱数が欲しいような時には使えない
2024/10/27(日) 16:44:26.48ID:mkB59Ft+
酷いスレだなあ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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