Rust part26 (814レス)
前次1-
抽出解除 レス栞

78
(3): 10/02(水)10:16 ID:XbzwGALZ(1) AAS
境界値検査しない言語が境界値検査する言語より遅い訳が無い
103
(3): 10/03(木)02:04 ID:03B8BtDx(2/3) AAS
>>102
>>95のRust&clang++場合は、本当は安全だけど境界チェックを取り除けなかったんだろうな
159
(3): 10/06(日)11:07 ID:jCq2z3ec(1) AAS
>>153
わかってないやつが言っても説得力ないよ

境界検査を外す話はこれかな
外部リンク:proc-cpuinfo.fixstars.com
197
(4): 警備員[Lv.1][新芽] 10/11(金)09:35 ID:4zAbwXut(1) AAS
rustはガベコレはないけど、オブジェクトのライフタイムをコンパイル時にチェックして c++でいう deleteを自動でセットしてくれるのですか?
コンパイラはそんな複雑なことができて、結果も信頼できるのでしょうか
それとも、開発者が自由に書けないくらい、書き方に制約を設けてコンパイラにとって既知のパターンとなるようにしているのですかね
338
(9): 10/17(木)20:18 ID:9pxlHN7V(1/2) AAS
>>324
普通はこういう風に説明される
外部リンク[html]:web.sfc.keio.ac.jp

1. プログラムは関数定義の集合であり、関数呼び出しによってそれらを組み合わせる。
2. 関数は first class object である。
3. 文という単位は無く、プログラムの実行とは式を評価することである。
4. 参照透過性がある。

主に、2が便利だから、rustにも部分的に採用されている
339
(4): 10/17(木)20:46 ID:yABRuexK(3/4) AAS
>>338
1と2で意味被ってんじゃん
なにその頭悪い定義
自分でコピペしてて疑問に思わないのか?
387
(4): 10/19(土)19:34 ID:/3C3bE8g(1/2) AAS
>>372
定義域とか値域とか言い出してるあたりCS修めてない匂いプンプンするけど
百歩譲ってお前が言ってるのは型理論の範疇
型無の関数型がありえる以上関数型の定義とは直接関係ない
415
(5): 10/21(月)22:09 ID:SnMtmJ3l(1) AAS
>>378
パターンマッチ有り無しとか些末すぎる
lispマクロがなぜ強力なのかを理論的に説明できないやつは関数型言語が何かを理解できてない
454
(3): 10/24(木)20:30 ID:Izj+Eszj(3/3) AAS
>>453
結局標準ライブラリでは乱数生成できないってことね、OK
457
(3): 10/24(木)21:35 ID:Vyb04yis(4/4) AAS
理解できない人向けにどうぞ
use std::hash::{BuildHasher, RandomState};
let random_value: u64 = RandomState::new().hash_one(0_u64);
ここで得られる値は乱数値

(シード値としても使えることを書いただけで混乱して理解できなくなる人がいるとは想定できずにごめんね)
497
(3): 10/26(土)22:18 ID:j2ddNQEF(1/2) AAS
今日一日勉強した成果がこれかぁ

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

>>494
std::randomが提供しようとしているのはCSPRNGだけでなくPRNGも検討されている
外部リンク:github.com

つまり…
>>495の結論は間違いだらけ
がんばれ〜
522
(3): 警備員[Lv.1][新芽] 10/29(火)00:30 ID:YvE8kkoz(1) AAS
rustはOSやデバイスドライバなどを作る人が使うもので、ふつうに業務アプリなどを書くには敷居が高すぎるというか、習熟のためのコストが高すぎるというか、勿体無いというか
凡人には無用(無理)なのかな
学んでいて得るものは多いけど、そういった点でHaskellに似ていると思いました
541
(3): 10/29(火)21:29 ID:Ck0fVC7d(1) AAS
循環参照が必要になるのは
設計者が頭悪しだからだよ
593
(5): 11/01(金)21:49 ID:lqBEgicJ(1) AAS
>>583
freeやdeleteは不要
freeせずにプログラムが終了したり落ちたりしてもメモリリークは起きない
604
(3): 11/02(土)23:52 ID:aIv/CPhG(1) AAS
>>595
それはむしろ逆
freeを完全にすることでメモリリークを防ぐことはできない
freeはアロケータが管理するメモリバッファへ返還する動作しかしない
malloc/free交互にするたびにそのバッファをゼロにするためOSやその他システムへバッファを返還する非効率をしない
アロケータが管理するバッファはfree後も常に一定量が残っている
つまりバッファを完全にシステム側に返還する責務をfreeは持たないしfreeで実現は無理だ
そこは各システムが別の機構として責務を持っている
普通のOSならプロセス終了でバッファ含めて使用メモリ全体を自動解放することになる
組み込みシステムでもそのプログラム終了時に少なくともバッファ部分を解放する仕組みを持たなければならない
省1
661
(5): 11/07(木)22:47 ID:SSxPh9YO(1) AAS
static変数へ入れてしまう場合もプログラムの最後までヒープ解放しないよね
例えば以下は正規表現わざわざ使うまでもない簡単な例だけど
ヒープ領域を確保して内部に持つRegexを何度も作り直すムダを避けるためにstaticに持つよくあるパターンとか
それを解放するきっかけは最後までやって来ないよね

fn yyyymmdd(s: &str) -> Option<(u32, u32, u32)> {
const YYYYMMDD: &str = r"(\d\d\d\d)/(\d\d)/(\d\d)";
static RE: LazyLock<Regex> = LazyLock::new(|| Regex::new(YYYYMMDD).unwrap());

if let Some((_, [year, month, day])) = RE.captures(s).map(|caps| caps.extract()) {
let year = year.parse().ok()?;
let month = month.parse().ok()?;
省6
690
(3): 11/09(土)13:21 ID:F1r07c7a(1/2) AAS
いつになったら、Rustで正規表現をconst文脈でコンパイルできるようになるの?
原理的に見込みない話?
727
(3): 11/10(日)16:34 ID:OGC8ujy2(11/13) AAS
ChatGPTもついでにCopilot Chatもゴミだよ
省略されたライフタイムの展開が自分でやったのが合ってるか自信がなくて、試しにやらせてみたらメチャクチャなことばっか言いやがった挙げ句、キレてthe Refrenceのelision rulesのところをペタペタ3回くらいコピペしたらすみません間違っていました、何度も申し訳ございません言いながらやっと正解を返してくれた
決定論的な問題を解かせるのにはまったく向いてない
781
(6): 11/11(月)22:59 ID:8PeapwRR(1/2) AAS
借用まわりで質問させてくれ

struct Foo {
 data: Option<Vec<u8>>
}

impl Foo {
 fn do_something(&mut self) -> &mut [u8] {
  if let Some(x) = &mut self.data {
   return x;
  }

  // `self.data` is assigned to here but it was already borrowed
省7
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.257s*