Rust part24

■ このスレッドは過去ログ倉庫に格納されています
2024/05/27(月) 06:41:26.82ID:T4AFD1f4
公式
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 part23
https://mevius.5ch.net/test/read.cgi/tech/1708677472/
2024/06/16(日) 22:37:41.81ID:ICtaqBL/
>>226
>じゃあ言語の仕様をどうやって把握すんの?
言語の仕様はリファレンスで把握しろよ

>Rust のコンパイラを実装できましたって言えるの?
言える必要性が全くないやろ
どうしても言いたければ公式が用意してるコンパイラと標準ライブラリのテストを全部通したらいいんじゃね?
2024/06/16(日) 23:02:11.93ID:Crm/SwBu
>>230
端的に言うと現状のリファレンスマニュアルで Rust の仕様の全てを読み取ることは出来ない。
そのことは >>198 あたりからの話題の流れ。
リファレンスマニュアルは仕様を書くものじゃないし。
232デフォルトの名無しさん
垢版 |
2024/06/17(月) 06:58:24.07ID:Yz55GwEO
【マイクロ波センサー】長距離でも壁があっても動きを検出!
↓2010年ごろには完成
高齢化社会を支える“見守りシステム”の開発に成功-カギを握った半導体ソリューションとは
↓2026年ごろにさらに性能工場
旭化成、ミリ波・マイクロ波帯の空洞共振器による微小金属検査システムを開発

男女関係なく陰部を撮影
一度でも盗撮されていれば正確な色合いの・・・
初期型は赤外線センサー【自動ドアのセンサなど】

子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功
AIを使って「赤外線カメラ画像のフルカラー化」に成功!

世界中で横行
233デフォルトの名無しさん
垢版 |
2024/06/17(月) 16:27:54.49ID:prlYSpwu
役に立たないどんぐり
2024/06/17(月) 21:23:17.19ID:McDpAz4n
卒業式でみんなで思い出を言うやつみたいだな

卒業生 「そして役に立たないどんぐり!」
卒業生一同 「どんぐり~」
2024/06/17(月) 21:51:46.63ID:McDpAz4n
卒業生A 「高速で動作しながら保たれる高いメモリ安全性」
卒業生一同 「安全性!」
2024/06/17(月) 22:06:12.81ID:JE6O5Al9
米ホワイトハウス「ソフトウェアはメモリ安全でなければならない」との声明を発表:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
2024/06/18(火) 00:33:44.73ID:Vx2LO8pn
卒業生 「みんなで借りた所有権」
卒業生一同 「所有権!」
238デフォルトの名無しさん
垢版 |
2024/06/18(火) 02:26:00.95ID:V90mUrMq
AIにC++とRustのコードを比較してもらった
https://nshinchan01.hateblo.jp/entry/2024/06/18/021159
2024/06/18(火) 08:51:41.62ID:Ee6IUiqA
見えない仕様書より見えているコロンブスを殴る
殴る
2024/06/18(火) 09:12:34.89ID:z6V+MJXC
>>238
sum()自体は使わないとしてこうかな

fn foo(input: impl IntoIterator<Item = i32>) -> i32 {
 input
  .into_iter()
  .filter(|x| x % 2 == 0)
  .map(|x| x * 2)
  .fold(0, |sum, x| sum + x)
}

fn main() {
 let numbers = vec![1, 2, 3, 4, 5];
 assert_eq!(foo(numbers), 12);
}
2024/06/18(火) 12:23:59.59ID:/B9kzKJY
Rustの仕様と実装の分離ができてないと、公式の実装が唯一になるから困る分野があるんだろうね。
Cとかコンパイラいっぱいあるじゃん。

Rustぐらい複雑で成長途上の言語で仕様を文書化して実装を交換可能にするなんて事実上無理っぽいけど、10年後ぐらいには問題でてくるのかもね。
2024/06/18(火) 12:31:26.48ID:28rDJLEQ
>>241
現在のRustの仕様は実用的なプログラミングをする上で十分なレベルとなっているけど
さらに便利にするための追加仕様がTODOリストに積まれていてそれらが少しずつ解決されて追加されていってる状況ですね
まだ当面しばらくは現状体制のまま成長させていくのが望ましいと思います
243デフォルトの名無しさん
垢版 |
2024/06/18(火) 13:47:06.59ID:4eNa7Q9X
実装が仕様でもいいけど、その場合はその実装のコアの部分を明確にした方がいいかもね
244デフォルトの名無しさん
垢版 |
2024/06/18(火) 13:51:40.72ID:LAg3uLnk
GPT-4oがAIベンチマークのARC-AGIで50%のスコアに到達、これまでの最高記録である34%を大幅に更新
2024年06月18日
※さらに最適化すれば70%以上も可能な模様

スマホに搭載可能な小型透視チップが開発される
2024年06月18日
245デフォルトの名無しさん
垢版 |
2024/06/18(火) 16:50:36.49ID:Q5+2E571
>>241
Cの標準化の更新なんて10年とかだろうが。
2024/06/18(火) 18:04:47.12ID:dU1vPCRC
>>241
>Cとかコンパイラいっぱいあるじゃん。
それは各チップでそれぞれ別のCコンパイラが必要なのと
クローズドソースでプロプライエタリのコンパイラを有償で販売できる環境があるからだよ

Rustだと各チップで必要になるのはLLVM対応であってRustのコンパイラではないし
リスクをとってまでプロプライエタリなコンパイラをわざわざ作るメリットもほぼない
それにコンパイラが乱立しないというのは今のところはエコシステム的にはメリットしかない
2024/06/18(火) 19:09:22.28ID:gzLiS43Q
gccが頑張ってるくらい?
2024/06/18(火) 19:12:43.09ID:1V33WRQR
団体がすべての主導権を握ってるならある日急にガラッと変えても誰も文句を言えない
実装が仕様です

C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
2024/06/18(火) 19:12:43.05ID:mK8t8Wj0
Rust Foundation自身がrfc3355をmergeして仕様策定やります宣言してるのに
今更そんなこと言ってもね
2024/06/18(火) 19:36:21.60ID:mK8t8Wj0
そもそも、仕様を必要とするのはコンパイラだけじゃない

ttps://blog.rust-lang.org/2022/07/01/RLS-deprecation.html

少なくとも、公式がrustc依存のRLSを捨ててrust-analyzerへの乗り換えを宣言した時点から
「rustc実装が仕様」状態から脱却しなくてはならないという意識はRust Foundation内にもずっとあったと考えるべきだろう
2024/06/18(火) 23:19:40.06ID:AiI9Z/GF
Rustのコンパイラを作るために理解すべき仕様と
Rustを使うために理解すべき仕様を
仕様という言葉で一括りにするから話がおかしくなる
2024/06/19(水) 01:01:46.69ID:Xt21vW+E
>>248
>C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
コードを利用してる側の都合というのは複数の実装が存在するけど
リファレンス実装やデファクトスタンダードが存在しないから規格がないと困るからでしょ

今も規格が生きてる言語というとC, C++, COBOL, Ada, Fortran, JavaScript, C#くらい
C#を除くと各ベンダーがクローズドソースでプロプライエタリなコンパイラを作ってた時代からの言語
C#はOSS/マルチプラットフォーム化されて必要性はもうなくなってる
2024/06/19(水) 01:08:50.95ID:8OfzU/dS
Javaも、本家SunとGnuとあったな。今は知らんが
254デフォルトの名無しさん
垢版 |
2024/06/19(水) 04:09:25.16ID:Z3xOIU7u
ボイス・トォ・スカル
スポーツで試用しているとそっく露呈

選手の動きを撮影してそれを2倍.4倍...スロー再生すれば明確に使用しているを見つけられる
通常の者でも動けなくとも音と動作は見えているのでそれをシミレーション【通常の者主軸】にあてはめて動作をみればよい
それにプラスΑでそれが可能な回数を数学を用いて算出【科Ⓚ立論や物理的法則の確率論】すれば明らかにおかしいが判明

人間の筋肉量などを基本にの運動能力を設定しておくこと
さらに公共の場で日常生活のⓀ感の鋭さを調べれば本人がその能力があるかがわかる

知力の方は根気よく罠にかけるように会話をしていけば露呈する
255デフォルトの名無しさん
垢版 |
2024/06/19(水) 07:18:12.06ID:Z3xOIU7u
レーザーで「トリウム原子核」を励起することに成功、原子核時計などの革新的技術への道が開かれる
2024年04月30日


量子もつれの伝達速度の限界を解明することに成功!
2024/04/02

世界初!「量子もつれ」の画像撮影に成功
2019/07/15

量子テレポーテーションとワーム・ホールの移動速度判明
地球上に幽霊も神も観測可能なのになぜ観測不能?
量子テレポーテーション中は量子のもつれがないので双方観測不能
など考えましょう
256デフォルトの名無しさん
垢版 |
2024/06/19(水) 10:09:36.86ID:Ml7xOhwE
ここもう、ちゃんと教えてくれる上級者を追い出し終えてしまったと思う
初心者が自分以下の初心者にマウント取るだけのスレになってしまった
最後まで我慢して付き合ってくれた上級者まで汚い言葉で追い出して。
そんなんだからいつまでも下手なんだろうし、しょうがないか
2024/06/19(水) 11:17:34.73ID:1p8aP5/l
上級者がいるとマウント取られてうざいから追い出し得だろ😅
2024/06/19(水) 17:53:51.50ID:LFDUaW3g
質問です
イテレータから"名前1", "データ1", "名前2", "データ2", ...と渡ってくるのですが
これを(名前, データ)のイテレータに変換する方法、または、そのように扱える方法ありますか?
2024/06/19(水) 18:29:49.29ID:sNVXKo+0
擬態初心者
2024/06/19(水) 18:44:02.73ID:ZD2dEKbK
>>248
気に入らないなら、フォークすれば良いじゃん
2024/06/19(水) 18:46:24.24ID:n3c3jE4n
パンがなければ?
2024/06/19(水) 19:22:09.94ID:KTqBdjza
>>256
書き込み規制が頻繁過ぎて信頼できないプラットホームだからだよ。
そもそも使えないことがあるのは内容がどうこう以前に論外。
263デフォルトの名無しさん
垢版 |
2024/06/19(水) 21:18:42.18ID:djSYTMJZ
このスレに上級者はいらねえ
真面目な質問をしたい時はissueか公式フォーラムかredditに行く
ここにはマウントを取って気持ちよくなるために来ているんだ
上級者は去れ
2024/06/19(水) 21:32:54.13ID:DBUer5Kw
>>258
1. itertoolsのtuples
2. nextを直接&指定回数呼び出すイテレータアダプターを書く
3. scan + filter_map
2024/06/19(水) 23:58:52.30ID:sOHW1UBs
>>258
奇数個が来た時のエラー処理を考えると
Result<(名前, データ), 残り>を返すイテレーターが適切

>>264
tuples()は奇数個エラーに気付けないのが惜しい
2024/06/20(木) 00:27:34.04ID:AP0fcOd2
>>265
奇数個はエラーってのはタプルの要素数2個の場合限定なので
もう少し一般化して使える方法がいいと思うよ
itertoolsはchunksとか他にも使えるやつがあるから用途に応じて使い分けてね
2024/06/20(木) 00:30:45.20ID:GE8fSxUT
chunksは使いにくくタプルにするのも面倒だな
2024/06/20(木) 00:49:36.16ID:1qQq2QC1
複おじに餌を与えないでください
269デフォルトの名無しさん
垢版 |
2024/06/20(木) 02:27:54.12ID:s4SRXQdp
いつの間にかHaskellがC#より速くなってた…。
https://nshinchan01.hateblo.jp/entry/2024/06/20/021327

HaskellとC#だけでなく、Rust/Pythonともベンチマーク比較してますのでどうぞ( ^^) _旦~~
(コードも掲載してるので、速度だけでなくコードの比較にもなってます)
2024/06/20(木) 08:11:10.55ID:EWbar4Kg
HaskellあればRustいらねーじゃん
2024/06/20(木) 08:16:50.61ID:cxaQEnhn
print!("");
この"!"いらんやろ
なぜ付けた
272デフォルトの名無しさん
垢版 |
2024/06/20(木) 08:54:48.96ID:r+KYpvqW
Haskellはもっと高速に動作するようにしてくれ
2024/06/20(木) 09:08:01.19ID:868QLl9r
>>271
!はマクロ

Rustは関数のオーバーロードがない
Rustは可変長引数もない

これらの弱点をマクロでおぎなっているんだよ
274デフォルトの名無しさん
垢版 |
2024/06/20(木) 09:25:21.08ID:r+KYpvqW
Rustはマクロをカジュアルに使いすぎ
275デフォルトの名無しさん
垢版 |
2024/06/20(木) 10:13:19.20ID:gE9bPm4O
正体不明ぼいす・とぉ・すかる【非接触型ムーンショット一式】

AIも発展してきて論文全て読み込ませて作成可能のAI返答なので実在している

世界中の建前
器機所持者と機器秘所持者と機器非所持者ぼいす・とぉ・すかる=非接触型ムーンショットそんな物無い!
かくなる上は統合失調症だ!
煩いので統合失調症を薬や自殺したことにしてカルテに!
さらに最近は作成しやすいので脇が甘いチームを見つけ次第コロナや感染症で死亡したことにします!

世界中の本音は現実は無慈悲
内臓疾患やバイオテロでの殺害!
統合失調症寿命を平均25年短く殺害!

非器機所持者に
世界で初めて固体電池を採用しパワー・安全性・耐久性・バッテリー寿命が超絶高まった最大出力4000Wのポータブル電源「YOSHINO B2000 SST」は家電を複数余裕で動かせてUPSとしても使用可能
2023年12月28日
※最上位は最大出力 6000w
これを最低4機?被害者に向けて配置して合計24000wの電磁波を集中できる配置にしていると犯人は宣言

ウナギの放電」は近くの生物の遺伝子を組換えていた!?
2023/12/11
2024/06/20(木) 12:40:54.14ID:eIGp2b4r
>>274
コンパイル時に展開して検証されるんだから、好ましくね?
実行時に解釈されて挙動が変わるJavaのアノテーションやRubyみたいなのよりよほど好ましいと思うが。
277デフォルトの名無しさん
垢版 |
2024/06/20(木) 12:47:30.50ID:s4SRXQdp
>>272
速いHaskellをお求めならIdris2が正格評価なHaskellという位置づけです。
無限リストを失うので、代わりにStreamとか色々概念が増えてるようですが。
(私は無限リスト含め、少ない概念でプログラミング出来るHaskellに惚れているので、速さはあまり気にしない)

一応、HaskellもTemplate HaskellでC++みたくコンパイル時実行して、ガシガシ定数に出来るのは定数にすれば速さも期待できますが。

>>270
HaskellはC#と同じくGCあるので、組み込みとかタイミングが命の金融系や車載系は向きませぬ…。
278デフォルトの名無しさん
垢版 |
2024/06/20(木) 12:50:51.75ID:r+KYpvqW
>>276
Rubyと比べて好ましいってのはなんの擁護にもなってないんだよな
むしろRubyと比較されうるというディスだろこれ
279デフォルトの名無しさん
垢版 |
2024/06/20(木) 17:05:35.72ID:F8Q2DGBi
>>276
同意します
2024/06/20(木) 17:45:56.15ID:sFnTxIc/
Rustのマクロは全言語の中でも優秀だからね
手続きマクロの強力さと利便性は他では代えがたい
宣言マクロももちろん衛生的(健全)で汚染がない
2024/06/20(木) 17:48:12.64ID:Yb1hkWJo
>>278
言語と言語の持つ機能を分離して評価できない方だったか。
282デフォルトの名無しさん
垢版 |
2024/06/20(木) 17:59:47.84ID:/aYWwCEV
>>281
いやRubyなんかどう分離してどこを切り取ってもRustと比較すること自体がRustへのディスだから
2024/06/20(木) 18:45:58.46ID:zOlAS9GZ
使い分けのできないバカしかいないのかな?
2024/06/20(木) 19:23:04.79ID:XVLgMtD/
>>280
Lisp
2024/06/20(木) 19:39:03.89ID:qDF/54rU
>>280
forth
2024/06/20(木) 19:39:05.96ID:sFnTxIc/
>>284
Lispは衛生マクロではないため失格
2024/06/20(木) 20:00:53.20ID:9lgCTTyf
>>280
Scheme
2024/06/20(木) 20:05:57.11ID:YFatQNUq
Rustの手続き型マクロは構文木を自由自在に扱えるし、宣言型マクロは汚染がなく健全だから、Rustより上の言語は存在しないと思うよ
2024/06/20(木) 22:08:57.89ID:0f6ktMCR
paiza.ioでクレートを追加する方法を教えてください

https://i.imgur.com/RkQr1Wu.png
2024/06/20(木) 22:19:44.74ID:XVLgMtD/
Scheme の仕様 R6RS では識別子に文脈情報がくっついているモデルの手続き的マクロが導入されて伝統的マクロと衛生的マクロの統合がされた。
Rust のマクロが複数種類ある状況と、構文木とトークン列を行き来するモデルは(有用で強力だが)整理されてない不恰好さを感じるところはあるよ。
2024/06/20(木) 22:21:58.65ID:p8EeWSs1
手続きマクロは別クレートが必要なのが面倒だし
いろいろと改善の余地はあると思う
2024/06/20(木) 22:53:46.34ID:L3G38ey0
>>267
>タプルにするのも面倒だな
chunkをtuples()すればいいだけだよ
面倒?
2024/06/20(木) 22:59:31.43ID:L3G38ey0
>>265
>Result<(名前, データ), 残り>を返すイテレーターが適切
残りを扱いたい場合はイテレータが返す要素の一部として残りを表現するよりも
chunks_exactのようにイテレータを消費して終わった後に別途残りを取得できる形にしたほうが親切だよ
294デフォルトの名無しさん
垢版 |
2024/06/21(金) 01:29:07.25ID:4fJ/I6Gh
>>289
無理

ソースコピペでうまく行くケースもある
2024/06/21(金) 05:51:59.15ID:KnPUDwDa
>>289
rust playgroundを使った方が良いと思われる
296デフォルトの名無しさん
垢版 |
2024/06/21(金) 06:59:01.53ID:6/+cQ+0X
>>289
そこでダメならideoneがあるじゃないか!
2024/06/21(金) 09:59:00.28ID:M8EEKVG+
rust playground はチョットマシなだけで
五十歩百歩目くそ鼻くそ
2024/06/21(金) 11:42:29.74ID:M8EEKVG+
>>289
巣に還れ
https://mevius.5ch.net/test/read.cgi/tech/1691038333/
2024/06/21(金) 12:58:06.76ID:wIxdZD1d
乱数はこれを実装してみた

https://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%90%88%E5%90%8C%E6%B3%95

https://paiza.io/projects/q52q5NA88lQ0hnM2xsTOTA
2024/06/21(金) 14:07:02.11ID:M8EEKVG+
久々に観掛けた static おじさん
2024/06/21(金) 14:19:00.20ID:TK0ahnJz
競プロ勢だよ
2024/06/21(金) 17:07:40.60ID:wIxdZD1d
staticやめてみた

https://paiza.io/projects/ooofhkI8laowBqzzDN6RsQ
2024/06/21(金) 22:48:19.44ID:zGyXPRVd
>>292
tuples()は余っても余らなくてもNoneを返して終わってしまうため今回の場合はあかんね

>>293
chunks_exact()はイテレータには使えない
スライスは長さがわかっているから対応できるけど
304デフォルトの名無しさん
垢版 |
2024/06/22(土) 11:51:50.83ID:7Ziu80uC
すまんが、ClippyのAI版みたいなのってあるの?
Youtubeを見ていたら、「ClippyはAIのを除けば一番よく指導してくれる」旨を言ってる人がいてさ
AIの似たようなツールがあるって直接言ってるわけじゃないんだけど、なんか気になる表現をしてたんだ
あるんだったら使ってみたいな
2024/06/22(土) 14:30:20.31ID:boWDxemH
深い意味は無いので気にしすぎです
306デフォルトの名無しさん
垢版 |
2024/06/22(土) 15:07:04.48ID:GlPOaJ+f
加熱するLLM開発競争に冷や水、オープンモデルの組み合わせだけでGPT-4o越えの事実
https://wirelesswire.jp/2024/06/86709/
307デフォルトの名無しさん
垢版 |
2024/06/22(土) 21:58:27.39ID:9CBpYiTc
>>304
それはRustに限らずプログラミング全般において「ChatGPTなどのAIに質問をすれば良い回答をしてくれる。そのようなAI系を除けばRustのClippyは良い仕事をしてくれる」という話だろう
「ClippyのAI版」という具体的なツールがあるわけでなく、もっと一般的な意味でのAIという文脈かと思う
308デフォルトの名無しさん
垢版 |
2024/06/22(土) 22:33:47.59ID:dw6Bjmix
>>304
Clippyは知らないが、自分のAIの使い方だとPythonでサンプルコードを書いて、Javaなりに変換するようにAIに投げる。
意図と違ったらその都度、こう直してって書いて微調整していく。って感じ。

Rustとかは雑誌の入門記事しか読んでないのに、関数型プログラミングバリバリのコードが出てきた。
(とはいえ元からPythonを意識した文法だったので、ほぼそのまんま)

fn main() {
for file_name in std::env::args().skip(1) {
println!("{}", file_name);
if let Ok(lines) = std::fs::read_to_string(&file_name) {
for (i, line) in lines.lines().enumerate() {
println!("{:>2}:{}", i + 1, line);
}
}
}
}
2024/06/22(土) 23:41:03.46ID:jxx0duBQ
関数型というとfor文使うのではなくこんなイメージ

fn main() {
 std::env::args().skip(1).for_each(|file_name| {
  println!("{}", file_name);
  std::fs::read_to_string(&file_name).map(|lines| {
   lines.lines().enumerate().for_each(|(i, line)| {
    println!("{:>2}:{}", i + 1, line);
   })
  })
 })
}
310デフォルトの名無しさん
垢版 |
2024/06/23(日) 01:55:08.61ID:iAmtDmVE
そうなんだけど、C#でやったらForEach使うためにやたらToListを経由させられて逆に読みにくくなった。

これはHaskellも無理に高階関数やモナド演算子(>>/>>=)ばかりじゃなくて、適度にリスト内包表記やdo記法も合わせた方が読み易いのと同じだと思う。
311デフォルトの名無しさん
垢版 |
2024/06/23(日) 02:43:59.44ID:FDfmyhMX
>>308 が関数型プログラミング *バリバリ* 何て書くからだろ。
俺も 308 のどこがバリバリ?と思ったわ。
関数型バリバリが読みやすいかどうかは別の話よ。
312デフォルトの名無しさん
垢版 |
2024/06/23(日) 04:04:02.58ID:iAmtDmVE
AIは現段階ではネットから拾ってくるだけだしね。
「もっと短くしてください。」を繰り返すと同じコードしか吐かない。
無理なら無理って答えろよっていう…。

それにしてもRustのfor_eachメソッドはindex行けるのか。羨ましい。
C#はSelectはindex使えるけどForEachは使えない。

逆にSelectはWriteLine使えないけどForEachは使えるという…。
(Forメソッド?が欲しい)

Rustはその辺、最初から関数型プログラミングを意識してるからfor_eachメソッド使ってもそこまで読み難くなってないな。
313デフォルトの名無しさん
垢版 |
2024/06/23(日) 04:08:15.53ID:iAmtDmVE
あ、>AIは現段階ではネットから拾ってくるだけだしね。 っていうのは

for文を全く使わないようなコードは、Web上の(ユーザーの)評価も低いのでAIの評価基準でも選択されないって意味ね。
314デフォルトの名無しさん
垢版 |
2024/06/23(日) 09:12:12.96ID:2+8typ11
>>308
clippyは公式のコード改善ツールだよ
コンパイラはエラーと警告だけ出すけど、clippyはそれ以上のヒントをくれる
例えば「コンテナ中に条件を満たす要素があるかどうか」をチェックするために items.iter().find(条件).is_some() のようなコードを書いたら、それに対し items.iter().any(条件) というシンプルな書き方を提案してくれる
こういう関数や構文の置き換えを含む提案をしてくれるツールで、これがコンパイラと同じ標準機能として備わってる (追加インストール不要) のが便利
315デフォルトの名無しさん
垢版 |
2024/06/23(日) 09:41:40.50ID:iAmtDmVE
いい勉強になった。ありがとう。
2024/06/23(日) 10:21:20.16ID:ndMGRV9p
>>312
for_eachの機能でindexにアクセスしてるんじゃなくて
enumerateで(index, value)の形に変換してそれをfor_eachしてるだけだぞ
標準でenumerate相当のメソッドが用意されてないだけで
ForEachでindexを扱うときはC#でも似たようなやり方になる
317デフォルトの名無しさん
垢版 |
2024/06/23(日) 16:42:06.61ID:+hC7ZOW/
正体不明ボイス・トォ・スカル
正体不明ぶれいん・ましん・いんたーふぇいす
対になっているのか?

周囲も被害者の思考を聞いているのならわかるように
被害者の声【思考】は初めの6か月間は聞えてなかった
6か月過ぎたころから被害者の思考が被害者自身で聞こえるようになった

被害者に話しかけている加害者側の正体不明ブレインマシンインターフェイスはどこにあるのだろうか?
被害者側の思考が漏れているのなら周囲の者は電磁波で夜も眠らされていなかったことや昼間横やりを入れているのは周知の事実
これから考えて被害者の思考のみが持てていると電磁波攻撃をしている者は被害者が嫌いこの条件がそろえば被害者に対して罵声を浴びせる被害者周囲者が出現する

被害者を見る限りそのような罵声を浴びせる者が出現しないということは
正体不明ボイス・トォ・スカルをしている者の思考はどこに漏れているのでしょうか?
また周囲の者も正体不明ボイス・トォ・スカル側についたものはどこに思考が漏れているのでしょうか?

等いろいろなパターンを考えましょう

ボイス・トォ・スカルで話していたホワイトリストとブラックリストこれが重要な意味を持っていると思われる
現実的に騒がなければ被害者には何も起きていない・・・各加害者が?一番聞かれると困る者に聞かせているというのも意味深です
2024/06/23(日) 21:00:39.70ID:GCEM9Zx1
Rustツアー
https://tourofrust.com/00_ja.html

説明が簡潔すぎてモヤモヤが増えていくばかり。
しかも終盤は翻訳されていない。
2024/06/23(日) 22:32:11.71ID:CiIX8R/B
>>318
翻訳が進んでないのはともかくとして、説明が簡潔なのはそういうもんだわ。
チュートリアルでもつっかえるやつはいっぱいいるのに雑なツアーだけで理解できるわけないだろ。
複雑なところに立ち入る前に概略を見るってのと
それをすぐさま実行して確かめれらる環境がくっついてるってのがコンセプトなので
細かいことは The Rust Programming Language を見るのが前提。

こういった種類の学習は各項目を完璧に理解してから次の項目に進むってのは出来ない。
色んな言語機能は絡み合っていて綺麗な順番には出来ない。
全体を大雑把につかんでから解像度を高めていく形になる。
その一番最初のおおざっぱなところを担当する形の資料ってこと。
2024/06/23(日) 22:46:50.25ID:cgFz9E69
C言語と関数型言語とあと何かモダンな言語の三様な言語を使える程度の知識経験があればRustはすらすら学習できるけど
それらのうち何らか知識が抜けているとその言語間での汎用的な知識も新たに学習することになるからちょっと大変になるようだね
321デフォルトの名無しさん
垢版 |
2024/06/23(日) 23:42:57.08ID:iAmtDmVE
>>316
そこは理解してる。
んで、Rustのfor_eachはenamerateさえすればindex使えるし、出力も出来る。

そこがC#のForEach場合、そもそもindexが使えないので一旦indexを使えるSelect & ToListを挟むことになる。

出力を考えなければ不便はないけど、出力を考えたとたんにSelect & ToListが付いてくる。

この辺は将来のバージョンに期待かな。
2024/06/24(月) 01:22:36.88ID:xscSUycb
>>321
理解してないでしょ

Enumerable.Range(7, 10).WithIndex().ForEach(x => {
var (index, value) = x;
Console.WriteLine($"{index}: {value}");
});

https://dotnetfiddle.net/aJJwdY
2024/06/24(月) 01:27:35.74ID:xscSUycb
.NET9でEnumerable.Indexという名前でenumerate相当が追加されるから拡張メソッドも不要になる
https://github.com/dotnet/runtime/blob/main/src/libraries/System.Linq/src/System/Linq/Index.cs

foreach (var (index, value) in items.Select((x, i) => (i, x)))が
foreach (var (index, value) in items.Index())になる
324デフォルトの名無しさん
垢版 |
2024/06/24(月) 04:37:42.69ID:De91wzz6
>>322
おお…。
確かに理解してませんでした。

ちなみに、私もその後何とかSelect内で出力を出来ないか思考錯誤したら出来たのですが、「違う。そうじゃない」な結果に^^;

File.ReadAllLines(fileName).Select((line, i) =>
{
Console.WriteLine($"{i + 1,2}:{line}");
return 0;
});
2024/06/24(月) 04:51:37.13ID:odZr3Fxa
Ruby なら、

p ary = ( 7...10 ).each_with_index.map{ |val, idx| [ idx, val ] }

#=> [ [0, 7], [1, 8], [2, 9] ]
326デフォルトの名無しさん
垢版 |
2024/06/24(月) 04:56:53.14ID:De91wzz6
理解していないと思ったら、ReadAllLines(fileName)にはWithIndexなるメソッド無かったなり…。
騙されたなり…orz
327デフォルトの名無しさん
垢版 |
2024/06/24(月) 04:58:38.37ID:oysLv6Xd
>>325
死ね
328デフォルトの名無しさん
垢版 |
2024/06/24(月) 07:45:03.03ID:m0RxboDo
if や case や match や テーブル参照は使わないで
(出来れば四則演算のみがベストアンサー)
変換前→変換後
1→2
2→1
3→3
4→10
6→4
8→8
10→6
を行う関数を造ってください

さらにその逆関数を造ってください
2024/06/24(月) 09:09:09.41ID:sUiNH5u5
>>328
六次式でいいなら一瞬でできるでしょ
330デフォルトの名無しさん
垢版 |
2024/06/24(月) 10:35:24.72ID:DSxd+1cL
統合失調症 100人い1人
本当に音波電磁波攻撃だった場合
統合失調症の寿命は短いからして殺害されている

トロッコ問題にあてはめると
Aの線路に電磁波攻撃をしている者が100人いる
Bの線路に被害者が1人いる
トロッコに乗っている者も第三者
切り替えポイントに第3者がいる
間違いなく選んだ方の線路の者は全員死亡する

あなたはどちらを助けますか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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