>>189
おまえら全員そうだがフィボナッチ数列でusize固定はおかしいだろ
コード自体は問題ないが <T: Zero + One + CheckedAdd> を付けろ
あとは0と1をT::zero()とT::one()へ置き換えればi8型からBigUintまで何でも動作するようになる
https://play.rust-lang.org/?edition=2021&gist=929f3df48db39182558dfad6fe8d1cda
さらに今回はfrom_fn()利用をそのままsuccessors()利用へ変換できるので見やすくなる
fn fibonacci_iter<T: Zero + One + CheckedAdd>() -> impl Iterator<Item = T> {
let mut oq = Some(T::one());
iter::successors(Some(T::zero()), move |p| {
let q = oq.take()?;
oq = q.checked_add(p);
Some(q)
})
}
ちなみにCloneを要求しないためBigIntなどでも無駄なコスト増とならない
>>202
そのコードは暗黙のコピーが発生している
from_fn()使用版のコードはcurrがキャプチャ変数なので「let n = curr?;」でコピー発生
successors()使用版のコードはクロージャ引数「|&curr: &usize|」の「&」でコピー発生
usizeならば問題はないがBigIntなどでそのコードは動かないので劣る
Rust part15
■ このスレッドは過去ログ倉庫に格納されています
295デフォルトの名無しさん
2022/05/23(月) 19:27:40.26ID:qJLEBqNZ■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【W杯】森保J スウェーデン戦のスタメン発表 第2戦から3人変更 菅原、瀬古が今大会初先発 [征夷大将軍★]
- 【W杯E組】 エクアドル2-1ドイツ / キュラソー0-2コートジボアール [征夷大将軍★]
- 【自維】鮭おにぎり198円に絶望、コンビニすら遠い存在に…「生き延びられない」物価高で広がる生活苦★4 [ひぃぃ★]
- JA担当者「もう倉庫にコメが入らない」新米も過剰生産。。新米3000円割れが見えてきた ★5 [Gecko★]
- あぶらとり紙の「よーじや」サッカーW杯特別勤務対応も…まさかの展開 会社代表涙「ほとんどの社員が興味ありません」 [Ailuropoda melanoleuca★]
- 「Mac」「iPad」突然の一斉値上げ MacBook Airは18万4800円→22万4800円からに [ちょこ★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★181【メキシコ/カナダ/アメリカ】
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★182【メキシコ/カナダ/アメリカ】
- とらせん
- 〓たかせん〓
- 【酒】2026W杯 実況★3
- ハム専 休養日
- 俺の本名が「智津夫」なんだが、どんなイメージ????? [343591364]
- 【画像】みんなもこのあとぺこちゃんと一緒にサッカー見るのー?
- 【サッカーW杯】日本🇯🇵 vs スウェーデン🇸🇪
- ( ヽ´ん`)「頭いいです。政治に詳しいです。謙虚です。優しいです」なぜモテないのか? [782112767]
- 大谷第2子誕生で叩いてたやつらって公衆の面前でラッシングを叱責したのは叩かないの?
- 【悲報】関東水没