公式
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/
探検
Rust part24
■ このスレッドは過去ログ倉庫に格納されています
2024/05/27(月) 06:41:26.82ID:T4AFD1f4
251デフォルトの名無しさん
2024/06/18(火) 23:19:40.06ID:AiI9Z/GF Rustのコンパイラを作るために理解すべき仕様と
Rustを使うために理解すべき仕様を
仕様という言葉で一括りにするから話がおかしくなる
Rustを使うために理解すべき仕様を
仕様という言葉で一括りにするから話がおかしくなる
252デフォルトの名無しさん
2024/06/19(水) 01:01:46.69ID:Xt21vW+E >>248
>C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
コードを利用してる側の都合というのは複数の実装が存在するけど
リファレンス実装やデファクトスタンダードが存在しないから規格がないと困るからでしょ
今も規格が生きてる言語というとC, C++, COBOL, Ada, Fortran, JavaScript, C#くらい
C#を除くと各ベンダーがクローズドソースでプロプライエタリなコンパイラを作ってた時代からの言語
C#はOSS/マルチプラットフォーム化されて必要性はもうなくなってる
>C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
コードを利用してる側の都合というのは複数の実装が存在するけど
リファレンス実装やデファクトスタンダードが存在しないから規格がないと困るからでしょ
今も規格が生きてる言語というとC, C++, COBOL, Ada, Fortran, JavaScript, C#くらい
C#を除くと各ベンダーがクローズドソースでプロプライエタリなコンパイラを作ってた時代からの言語
C#はOSS/マルチプラットフォーム化されて必要性はもうなくなってる
253デフォルトの名無しさん
2024/06/19(水) 01:08:50.95ID:8OfzU/dS Javaも、本家SunとGnuとあったな。今は知らんが
254デフォルトの名無しさん
2024/06/19(水) 04:09:25.16ID:Z3xOIU7u ボイス・トォ・スカル
スポーツで試用しているとそっく露呈
選手の動きを撮影してそれを2倍.4倍...スロー再生すれば明確に使用しているを見つけられる
通常の者でも動けなくとも音と動作は見えているのでそれをシミレーション【通常の者主軸】にあてはめて動作をみればよい
それにプラスΑでそれが可能な回数を数学を用いて算出【科Ⓚ立論や物理的法則の確率論】すれば明らかにおかしいが判明
人間の筋肉量などを基本にの運動能力を設定しておくこと
さらに公共の場で日常生活のⓀ感の鋭さを調べれば本人がその能力があるかがわかる
知力の方は根気よく罠にかけるように会話をしていけば露呈する
スポーツで試用しているとそっく露呈
選手の動きを撮影してそれを2倍.4倍...スロー再生すれば明確に使用しているを見つけられる
通常の者でも動けなくとも音と動作は見えているのでそれをシミレーション【通常の者主軸】にあてはめて動作をみればよい
それにプラスΑでそれが可能な回数を数学を用いて算出【科Ⓚ立論や物理的法則の確率論】すれば明らかにおかしいが判明
人間の筋肉量などを基本にの運動能力を設定しておくこと
さらに公共の場で日常生活のⓀ感の鋭さを調べれば本人がその能力があるかがわかる
知力の方は根気よく罠にかけるように会話をしていけば露呈する
255デフォルトの名無しさん
2024/06/19(水) 07:18:12.06ID:Z3xOIU7u レーザーで「トリウム原子核」を励起することに成功、原子核時計などの革新的技術への道が開かれる
2024年04月30日
量子もつれの伝達速度の限界を解明することに成功!
2024/04/02
世界初!「量子もつれ」の画像撮影に成功
2019/07/15
量子テレポーテーションとワーム・ホールの移動速度判明
地球上に幽霊も神も観測可能なのになぜ観測不能?
量子テレポーテーション中は量子のもつれがないので双方観測不能
など考えましょう
2024年04月30日
量子もつれの伝達速度の限界を解明することに成功!
2024/04/02
世界初!「量子もつれ」の画像撮影に成功
2019/07/15
量子テレポーテーションとワーム・ホールの移動速度判明
地球上に幽霊も神も観測可能なのになぜ観測不能?
量子テレポーテーション中は量子のもつれがないので双方観測不能
など考えましょう
256デフォルトの名無しさん
2024/06/19(水) 10:09:36.86ID:Ml7xOhwE ここもう、ちゃんと教えてくれる上級者を追い出し終えてしまったと思う
初心者が自分以下の初心者にマウント取るだけのスレになってしまった
最後まで我慢して付き合ってくれた上級者まで汚い言葉で追い出して。
そんなんだからいつまでも下手なんだろうし、しょうがないか
初心者が自分以下の初心者にマウント取るだけのスレになってしまった
最後まで我慢して付き合ってくれた上級者まで汚い言葉で追い出して。
そんなんだからいつまでも下手なんだろうし、しょうがないか
257デフォルトの名無しさん
2024/06/19(水) 11:17:34.73ID:1p8aP5/l 上級者がいるとマウント取られてうざいから追い出し得だろ😅
258デフォルトの名無しさん
2024/06/19(水) 17:53:51.50ID:LFDUaW3g 質問です
イテレータから"名前1", "データ1", "名前2", "データ2", ...と渡ってくるのですが
これを(名前, データ)のイテレータに変換する方法、または、そのように扱える方法ありますか?
イテレータから"名前1", "データ1", "名前2", "データ2", ...と渡ってくるのですが
これを(名前, データ)のイテレータに変換する方法、または、そのように扱える方法ありますか?
259デフォルトの名無しさん
2024/06/19(水) 18:29:49.29ID:sNVXKo+0 擬態初心者
260デフォルトの名無しさん
2024/06/19(水) 18:44:02.73ID:ZD2dEKbK >>248
気に入らないなら、フォークすれば良いじゃん
気に入らないなら、フォークすれば良いじゃん
261デフォルトの名無しさん
2024/06/19(水) 18:46:24.24ID:n3c3jE4n パンがなければ?
262デフォルトの名無しさん
2024/06/19(水) 19:22:09.94ID:KTqBdjza263デフォルトの名無しさん
2024/06/19(水) 21:18:42.18ID:djSYTMJZ このスレに上級者はいらねえ
真面目な質問をしたい時はissueか公式フォーラムかredditに行く
ここにはマウントを取って気持ちよくなるために来ているんだ
上級者は去れ
真面目な質問をしたい時はissueか公式フォーラムかredditに行く
ここにはマウントを取って気持ちよくなるために来ているんだ
上級者は去れ
264デフォルトの名無しさん
2024/06/19(水) 21:32:54.13ID:DBUer5Kw265デフォルトの名無しさん
2024/06/19(水) 23:58:52.30ID:sOHW1UBs266デフォルトの名無しさん
2024/06/20(木) 00:27:34.04ID:AP0fcOd2 >>265
奇数個はエラーってのはタプルの要素数2個の場合限定なので
もう少し一般化して使える方法がいいと思うよ
itertoolsはchunksとか他にも使えるやつがあるから用途に応じて使い分けてね
奇数個はエラーってのはタプルの要素数2個の場合限定なので
もう少し一般化して使える方法がいいと思うよ
itertoolsはchunksとか他にも使えるやつがあるから用途に応じて使い分けてね
267デフォルトの名無しさん
2024/06/20(木) 00:30:45.20ID:GE8fSxUT chunksは使いにくくタプルにするのも面倒だな
268デフォルトの名無しさん
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ともベンチマーク比較してますのでどうぞ( ^^) _旦~~
(コードも掲載してるので、速度だけでなくコードの比較にもなってます)
https://nshinchan01.hateblo.jp/entry/2024/06/20/021327
HaskellとC#だけでなく、Rust/Pythonともベンチマーク比較してますのでどうぞ( ^^) _旦~~
(コードも掲載してるので、速度だけでなくコードの比較にもなってます)
270デフォルトの名無しさん
2024/06/20(木) 08:11:10.55ID:EWbar4Kg HaskellあればRustいらねーじゃん
271デフォルトの名無しさん
2024/06/20(木) 08:16:50.61ID:cxaQEnhn print!("");
この"!"いらんやろ
なぜ付けた
この"!"いらんやろ
なぜ付けた
272デフォルトの名無しさん
2024/06/20(木) 08:54:48.96ID:r+KYpvqW Haskellはもっと高速に動作するようにしてくれ
273デフォルトの名無しさん
2024/06/20(木) 09:08:01.19ID:868QLl9r274デフォルトの名無しさん
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
AIも発展してきて論文全て読み込ませて作成可能のAI返答なので実在している
世界中の建前
器機所持者と機器秘所持者と機器非所持者ぼいす・とぉ・すかる=非接触型ムーンショットそんな物無い!
かくなる上は統合失調症だ!
煩いので統合失調症を薬や自殺したことにしてカルテに!
さらに最近は作成しやすいので脇が甘いチームを見つけ次第コロナや感染症で死亡したことにします!
世界中の本音は現実は無慈悲
内臓疾患やバイオテロでの殺害!
統合失調症寿命を平均25年短く殺害!
非器機所持者に
世界で初めて固体電池を採用しパワー・安全性・耐久性・バッテリー寿命が超絶高まった最大出力4000Wのポータブル電源「YOSHINO B2000 SST」は家電を複数余裕で動かせてUPSとしても使用可能
2023年12月28日
※最上位は最大出力 6000w
これを最低4機?被害者に向けて配置して合計24000wの電磁波を集中できる配置にしていると犯人は宣言
ウナギの放電」は近くの生物の遺伝子を組換えていた!?
2023/12/11
276デフォルトの名無しさん
2024/06/20(木) 12:40:54.14ID:eIGp2b4r277デフォルトの名無しさん
2024/06/20(木) 12:47:30.50ID:s4SRXQdp278デフォルトの名無しさん
2024/06/20(木) 12:50:51.75ID:r+KYpvqW279デフォルトの名無しさん
2024/06/20(木) 17:05:35.72ID:F8Q2DGBi >>276
同意します
同意します
280デフォルトの名無しさん
2024/06/20(木) 17:45:56.15ID:sFnTxIc/ Rustのマクロは全言語の中でも優秀だからね
手続きマクロの強力さと利便性は他では代えがたい
宣言マクロももちろん衛生的(健全)で汚染がない
手続きマクロの強力さと利便性は他では代えがたい
宣言マクロももちろん衛生的(健全)で汚染がない
281デフォルトの名無しさん
2024/06/20(木) 17:48:12.64ID:Yb1hkWJo >>278
言語と言語の持つ機能を分離して評価できない方だったか。
言語と言語の持つ機能を分離して評価できない方だったか。
282デフォルトの名無しさん
2024/06/20(木) 17:59:47.84ID:/aYWwCEV >>281
いやRubyなんかどう分離してどこを切り取ってもRustと比較すること自体がRustへのディスだから
いやRubyなんかどう分離してどこを切り取ってもRustと比較すること自体がRustへのディスだから
283デフォルトの名無しさん
2024/06/20(木) 18:45:58.46ID:zOlAS9GZ 使い分けのできないバカしかいないのかな?
284デフォルトの名無しさん
2024/06/20(木) 19:23:04.79ID:XVLgMtD/ >>280
Lisp
Lisp
>>280
forth
forth
286デフォルトの名無しさん
2024/06/20(木) 19:39:05.96ID:sFnTxIc/ >>284
Lispは衛生マクロではないため失格
Lispは衛生マクロではないため失格
287デフォルトの名無しさん
2024/06/20(木) 20:00:53.20ID:9lgCTTyf >>280
Scheme
Scheme
288デフォルトの名無しさん
2024/06/20(木) 20:05:57.11ID:YFatQNUq Rustの手続き型マクロは構文木を自由自在に扱えるし、宣言型マクロは汚染がなく健全だから、Rustより上の言語は存在しないと思うよ
289デフォルトの名無しさん
2024/06/20(木) 22:08:57.89ID:0f6ktMCR290デフォルトの名無しさん
2024/06/20(木) 22:19:44.74ID:XVLgMtD/ Scheme の仕様 R6RS では識別子に文脈情報がくっついているモデルの手続き的マクロが導入されて伝統的マクロと衛生的マクロの統合がされた。
Rust のマクロが複数種類ある状況と、構文木とトークン列を行き来するモデルは(有用で強力だが)整理されてない不恰好さを感じるところはあるよ。
Rust のマクロが複数種類ある状況と、構文木とトークン列を行き来するモデルは(有用で強力だが)整理されてない不恰好さを感じるところはあるよ。
291デフォルトの名無しさん
2024/06/20(木) 22:21:58.65ID:p8EeWSs1 手続きマクロは別クレートが必要なのが面倒だし
いろいろと改善の余地はあると思う
いろいろと改善の余地はあると思う
292デフォルトの名無しさん
2024/06/20(木) 22:53:46.34ID:L3G38ey0293デフォルトの名無しさん
2024/06/20(木) 22:59:31.43ID:L3G38ey0 >>265
>Result<(名前, データ), 残り>を返すイテレーターが適切
残りを扱いたい場合はイテレータが返す要素の一部として残りを表現するよりも
chunks_exactのようにイテレータを消費して終わった後に別途残りを取得できる形にしたほうが親切だよ
>Result<(名前, データ), 残り>を返すイテレーターが適切
残りを扱いたい場合はイテレータが返す要素の一部として残りを表現するよりも
chunks_exactのようにイテレータを消費して終わった後に別途残りを取得できる形にしたほうが親切だよ
294デフォルトの名無しさん
2024/06/21(金) 01:29:07.25ID:4fJ/I6Gh295デフォルトの名無しさん
2024/06/21(金) 05:51:59.15ID:KnPUDwDa >>289
rust playgroundを使った方が良いと思われる
rust playgroundを使った方が良いと思われる
296デフォルトの名無しさん
2024/06/21(金) 06:59:01.53ID:6/+cQ+0X >>289
そこでダメならideoneがあるじゃないか!
そこでダメならideoneがあるじゃないか!
297デフォルトの名無しさん
2024/06/21(金) 09:59:00.28ID:M8EEKVG+ rust playground はチョットマシなだけで
五十歩百歩目くそ鼻くそ
五十歩百歩目くそ鼻くそ
298デフォルトの名無しさん
2024/06/21(金) 11:42:29.74ID:M8EEKVG+299デフォルトの名無しさん
2024/06/21(金) 12:58:06.76ID:wIxdZD1d300デフォルトの名無しさん
2024/06/21(金) 14:07:02.11ID:M8EEKVG+ 久々に観掛けた static おじさん
301デフォルトの名無しさん
2024/06/21(金) 14:19:00.20ID:TK0ahnJz 競プロ勢だよ
302デフォルトの名無しさん
2024/06/21(金) 17:07:40.60ID:wIxdZD1d303デフォルトの名無しさん
2024/06/21(金) 22:48:19.44ID:zGyXPRVd304デフォルトの名無しさん
2024/06/22(土) 11:51:50.83ID:7Ziu80uC すまんが、ClippyのAI版みたいなのってあるの?
Youtubeを見ていたら、「ClippyはAIのを除けば一番よく指導してくれる」旨を言ってる人がいてさ
AIの似たようなツールがあるって直接言ってるわけじゃないんだけど、なんか気になる表現をしてたんだ
あるんだったら使ってみたいな
Youtubeを見ていたら、「ClippyはAIのを除けば一番よく指導してくれる」旨を言ってる人がいてさ
AIの似たようなツールがあるって直接言ってるわけじゃないんだけど、なんか気になる表現をしてたんだ
あるんだったら使ってみたいな
305デフォルトの名無しさん
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/
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という文脈かと思う
それは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);
}
}
}
}
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);
}
}
}
}
309デフォルトの名無しさん
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);
})
})
})
}
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記法も合わせた方が読み易いのと同じだと思う。
これはHaskellも無理に高階関数やモナド演算子(>>/>>=)ばかりじゃなくて、適度にリスト内包表記やdo記法も合わせた方が読み易いのと同じだと思う。
311デフォルトの名無しさん
2024/06/23(日) 02:43:59.44ID:FDfmyhMX312デフォルトの名無しさん
2024/06/23(日) 04:04:02.58ID:iAmtDmVE AIは現段階ではネットから拾ってくるだけだしね。
「もっと短くしてください。」を繰り返すと同じコードしか吐かない。
無理なら無理って答えろよっていう…。
それにしてもRustのfor_eachメソッドはindex行けるのか。羨ましい。
C#はSelectはindex使えるけどForEachは使えない。
逆にSelectはWriteLine使えないけどForEachは使えるという…。
(Forメソッド?が欲しい)
Rustはその辺、最初から関数型プログラミングを意識してるからfor_eachメソッド使ってもそこまで読み難くなってないな。
「もっと短くしてください。」を繰り返すと同じコードしか吐かない。
無理なら無理って答えろよっていう…。
それにしても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の評価基準でも選択されないって意味ね。
for文を全く使わないようなコードは、Web上の(ユーザーの)評価も低いのでAIの評価基準でも選択されないって意味ね。
314デフォルトの名無しさん
2024/06/23(日) 09:12:12.96ID:2+8typ11 >>308
clippyは公式のコード改善ツールだよ
コンパイラはエラーと警告だけ出すけど、clippyはそれ以上のヒントをくれる
例えば「コンテナ中に条件を満たす要素があるかどうか」をチェックするために items.iter().find(条件).is_some() のようなコードを書いたら、それに対し items.iter().any(条件) というシンプルな書き方を提案してくれる
こういう関数や構文の置き換えを含む提案をしてくれるツールで、これがコンパイラと同じ標準機能として備わってる (追加インストール不要) のが便利
clippyは公式のコード改善ツールだよ
コンパイラはエラーと警告だけ出すけど、clippyはそれ以上のヒントをくれる
例えば「コンテナ中に条件を満たす要素があるかどうか」をチェックするために items.iter().find(条件).is_some() のようなコードを書いたら、それに対し items.iter().any(条件) というシンプルな書き方を提案してくれる
こういう関数や構文の置き換えを含む提案をしてくれるツールで、これがコンパイラと同じ標準機能として備わってる (追加インストール不要) のが便利
315デフォルトの名無しさん
2024/06/23(日) 09:41:40.50ID:iAmtDmVE いい勉強になった。ありがとう。
316デフォルトの名無しさん
2024/06/23(日) 10:21:20.16ID:ndMGRV9p >>312
for_eachの機能でindexにアクセスしてるんじゃなくて
enumerateで(index, value)の形に変換してそれをfor_eachしてるだけだぞ
標準でenumerate相当のメソッドが用意されてないだけで
ForEachでindexを扱うときはC#でも似たようなやり方になる
for_eachの機能でindexにアクセスしてるんじゃなくて
enumerateで(index, value)の形に変換してそれをfor_eachしてるだけだぞ
標準でenumerate相当のメソッドが用意されてないだけで
ForEachでindexを扱うときはC#でも似たようなやり方になる
317デフォルトの名無しさん
2024/06/23(日) 16:42:06.61ID:+hC7ZOW/ 正体不明ボイス・トォ・スカル
正体不明ぶれいん・ましん・いんたーふぇいす
対になっているのか?
周囲も被害者の思考を聞いているのならわかるように
被害者の声【思考】は初めの6か月間は聞えてなかった
6か月過ぎたころから被害者の思考が被害者自身で聞こえるようになった
被害者に話しかけている加害者側の正体不明ブレインマシンインターフェイスはどこにあるのだろうか?
被害者側の思考が漏れているのなら周囲の者は電磁波で夜も眠らされていなかったことや昼間横やりを入れているのは周知の事実
これから考えて被害者の思考のみが持てていると電磁波攻撃をしている者は被害者が嫌いこの条件がそろえば被害者に対して罵声を浴びせる被害者周囲者が出現する
被害者を見る限りそのような罵声を浴びせる者が出現しないということは
正体不明ボイス・トォ・スカルをしている者の思考はどこに漏れているのでしょうか?
また周囲の者も正体不明ボイス・トォ・スカル側についたものはどこに思考が漏れているのでしょうか?
等いろいろなパターンを考えましょう
ボイス・トォ・スカルで話していたホワイトリストとブラックリストこれが重要な意味を持っていると思われる
現実的に騒がなければ被害者には何も起きていない・・・各加害者が?一番聞かれると困る者に聞かせているというのも意味深です
正体不明ぶれいん・ましん・いんたーふぇいす
対になっているのか?
周囲も被害者の思考を聞いているのならわかるように
被害者の声【思考】は初めの6か月間は聞えてなかった
6か月過ぎたころから被害者の思考が被害者自身で聞こえるようになった
被害者に話しかけている加害者側の正体不明ブレインマシンインターフェイスはどこにあるのだろうか?
被害者側の思考が漏れているのなら周囲の者は電磁波で夜も眠らされていなかったことや昼間横やりを入れているのは周知の事実
これから考えて被害者の思考のみが持てていると電磁波攻撃をしている者は被害者が嫌いこの条件がそろえば被害者に対して罵声を浴びせる被害者周囲者が出現する
被害者を見る限りそのような罵声を浴びせる者が出現しないということは
正体不明ボイス・トォ・スカルをしている者の思考はどこに漏れているのでしょうか?
また周囲の者も正体不明ボイス・トォ・スカル側についたものはどこに思考が漏れているのでしょうか?
等いろいろなパターンを考えましょう
ボイス・トォ・スカルで話していたホワイトリストとブラックリストこれが重要な意味を持っていると思われる
現実的に騒がなければ被害者には何も起きていない・・・各加害者が?一番聞かれると困る者に聞かせているというのも意味深です
318デフォルトの名無しさん
2024/06/23(日) 21:00:39.70ID:GCEM9Zx1319デフォルトの名無しさん
2024/06/23(日) 22:32:11.71ID:CiIX8R/B >>318
翻訳が進んでないのはともかくとして、説明が簡潔なのはそういうもんだわ。
チュートリアルでもつっかえるやつはいっぱいいるのに雑なツアーだけで理解できるわけないだろ。
複雑なところに立ち入る前に概略を見るってのと
それをすぐさま実行して確かめれらる環境がくっついてるってのがコンセプトなので
細かいことは The Rust Programming Language を見るのが前提。
こういった種類の学習は各項目を完璧に理解してから次の項目に進むってのは出来ない。
色んな言語機能は絡み合っていて綺麗な順番には出来ない。
全体を大雑把につかんでから解像度を高めていく形になる。
その一番最初のおおざっぱなところを担当する形の資料ってこと。
翻訳が進んでないのはともかくとして、説明が簡潔なのはそういうもんだわ。
チュートリアルでもつっかえるやつはいっぱいいるのに雑なツアーだけで理解できるわけないだろ。
複雑なところに立ち入る前に概略を見るってのと
それをすぐさま実行して確かめれらる環境がくっついてるってのがコンセプトなので
細かいことは The Rust Programming Language を見るのが前提。
こういった種類の学習は各項目を完璧に理解してから次の項目に進むってのは出来ない。
色んな言語機能は絡み合っていて綺麗な順番には出来ない。
全体を大雑把につかんでから解像度を高めていく形になる。
その一番最初のおおざっぱなところを担当する形の資料ってこと。
320デフォルトの名無しさん
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が付いてくる。
この辺は将来のバージョンに期待かな。
そこは理解してる。
んで、Rustのfor_eachはenamerateさえすればindex使えるし、出力も出来る。
そこがC#のForEach場合、そもそもindexが使えないので一旦indexを使えるSelect & ToListを挟むことになる。
出力を考えなければ不便はないけど、出力を考えたとたんにSelect & ToListが付いてくる。
この辺は将来のバージョンに期待かな。
322デフォルトの名無しさん
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
理解してないでしょ
Enumerable.Range(7, 10).WithIndex().ForEach(x => {
var (index, value) = x;
Console.WriteLine($"{index}: {value}");
});
https://dotnetfiddle.net/aJJwdY
323デフォルトの名無しさん
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())になる
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;
});
おお…。
確かに理解してませんでした。
ちなみに、私もその後何とかSelect内で出力を出来ないか思考錯誤したら出来たのですが、「違う。そうじゃない」な結果に^^;
File.ReadAllLines(fileName).Select((line, i) =>
{
Console.WriteLine($"{i + 1,2}:{line}");
return 0;
});
325デフォルトの名無しさん
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] ]
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
騙されたなり…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
を行う関数を造ってください
さらにその逆関数を造ってください
(出来れば四則演算のみがベストアンサー)
変換前→変換後
1→2
2→1
3→3
4→10
6→4
8→8
10→6
を行う関数を造ってください
さらにその逆関数を造ってください
329デフォルトの名無しさん
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者がいる
間違いなく選んだ方の線路の者は全員死亡する
あなたはどちらを助けますか?
本当に音波電磁波攻撃だった場合
統合失調症の寿命は短いからして殺害されている
トロッコ問題にあてはめると
Aの線路に電磁波攻撃をしている者が100人いる
Bの線路に被害者が1人いる
トロッコに乗っている者も第三者
切り替えポイントに第3者がいる
間違いなく選んだ方の線路の者は全員死亡する
あなたはどちらを助けますか?
331デフォルトの名無しさん
2024/06/24(月) 12:53:49.42ID:JonISmvT332デフォルトの名無しさん
2024/06/24(月) 16:09:25.85ID:5PR+5FBR >>320
結局c++やってないと無理な気はするけどね。
c++は確かに建て増しでグダグダではあるんだが、
書き方の変遷をそのまま引き継いでるから、学習過程でその書き方を変遷させる過程を色々ビルドしながら
できるのはまあわかりやすくはあるんだわ。
結局c++やってないと無理な気はするけどね。
c++は確かに建て増しでグダグダではあるんだが、
書き方の変遷をそのまま引き継いでるから、学習過程でその書き方を変遷させる過程を色々ビルドしながら
できるのはまあわかりやすくはあるんだわ。
333デフォルトの名無しさん
2024/06/24(月) 16:17:05.11ID:jX1oxSab334デフォルトの名無しさん
2024/06/24(月) 16:21:31.19ID:jX1oxSab >>333
//1→2
//2→1
//3→3
(1) 四則演算のみ:
y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
規則は、y0*(x-x1)(x-x2)のようなパターンを
サイクリック(循環的)に繰り返す。
(2)三項演算子、その1
y=x==1?2:(x==2?1:(x==3?3:0));
(3)三項演算子、その2
y= (x==1?2:0) + (x==2?1:0) + (x==3?3:0);
//1→2
//2→1
//3→3
(1) 四則演算のみ:
y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
規則は、y0*(x-x1)(x-x2)のようなパターンを
サイクリック(循環的)に繰り返す。
(2)三項演算子、その1
y=x==1?2:(x==2?1:(x==3?3:0));
(3)三項演算子、その2
y= (x==1?2:0) + (x==2?1:0) + (x==3?3:0);
335デフォルトの名無しさん
2024/06/24(月) 16:28:01.78ID:MN5H+Gdl スレチなのでよそでやって下さい
336デフォルトの名無しさん
2024/06/24(月) 17:42:58.06ID:Uuc2YNAP >>328
const INPUT: &str = "
1→2
2→1
3→3
4→10
6→4
8→8
10→6
";
fn parse(s: &str) -> Vec<(i32, i32)> {
s.lines().filter_map(|line| {
line.split('→')
.map(str::parse::<i32>)
.collect::<Result<Vec<_>, _>>()
.ok()
.and_then(|v| (v.len() == 2).then(|| (v[0], v[1])))
})
.collect::<Vec<_>>()
}
fn make_f(v: &[(i32, i32)]) -> impl Fn(i32) -> i32 + '_ {
move |x| {
v.iter().enumerate().map(|(i, (in1, out))| {
v.iter().enumerate().filter_map(|(j, (in2, _))| (i != j).then(|| x - in2)).product::<i32>() /
v.iter().enumerate().filter_map(|(j, (in2, _))| (i != j).then(|| in1 - in2)).product::<i32>() * out
})
.sum()
}
}
const INPUT: &str = "
1→2
2→1
3→3
4→10
6→4
8→8
10→6
";
fn parse(s: &str) -> Vec<(i32, i32)> {
s.lines().filter_map(|line| {
line.split('→')
.map(str::parse::<i32>)
.collect::<Result<Vec<_>, _>>()
.ok()
.and_then(|v| (v.len() == 2).then(|| (v[0], v[1])))
})
.collect::<Vec<_>>()
}
fn make_f(v: &[(i32, i32)]) -> impl Fn(i32) -> i32 + '_ {
move |x| {
v.iter().enumerate().map(|(i, (in1, out))| {
v.iter().enumerate().filter_map(|(j, (in2, _))| (i != j).then(|| x - in2)).product::<i32>() /
v.iter().enumerate().filter_map(|(j, (in2, _))| (i != j).then(|| in1 - in2)).product::<i32>() * out
})
.sum()
}
}
337デフォルトの名無しさん
2024/06/24(月) 17:43:39.86ID:Uuc2YNAP >>336
fn main() {
let v = parse(INPUT);
let f = make_f(&v);
for (input, output) in &v {
let calc_output = f(*input);
println!("{input} -> {calc_output}");
assert_eq!(calc_output, *output);
}
}
結果
1 -> 2
2 -> 1
3 -> 3
4 -> 10
6 -> 4
8 -> 8
10 -> 6
fn main() {
let v = parse(INPUT);
let f = make_f(&v);
for (input, output) in &v {
let calc_output = f(*input);
println!("{input} -> {calc_output}");
assert_eq!(calc_output, *output);
}
}
結果
1 -> 2
2 -> 1
3 -> 3
4 -> 10
6 -> 4
8 -> 8
10 -> 6
338デフォルトの名無しさん
2024/06/24(月) 18:41:27.02ID:jX1oxSab >>334
>y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
間違ったわ。
多分、
y=1*(x-2)(x-3)-1*(x-1)(x-3)+3/2*(x-1)(x-2);
だと思うわ。
理由は大体分かると思うけど。
>y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
間違ったわ。
多分、
y=1*(x-2)(x-3)-1*(x-1)(x-3)+3/2*(x-1)(x-2);
だと思うわ。
理由は大体分かると思うけど。
339デフォルトの名無しさん
2024/06/24(月) 18:41:27.42ID:jX1oxSab >>334
>y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
間違ったわ。
多分、
y=1*(x-2)(x-3)-1*(x-1)(x-3)+3/2*(x-1)(x-2);
だと思うわ。
理由は大体分かると思うけど。
>y=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
間違ったわ。
多分、
y=1*(x-2)(x-3)-1*(x-1)(x-3)+3/2*(x-1)(x-2);
だと思うわ。
理由は大体分かると思うけど。
340デフォルトの名無しさん
2024/06/24(月) 18:44:46.10ID:jX1oxSab 一般的には、次のように書けると思うわ:
a=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
b=(x-2)(x-3)+(x-1)(x-3)+(x-1)(x-2);
y=a/b;
a=2*(x-2)(x-3)+1*(x-1)(x-3)+3*(x-1)(x-2);
b=(x-2)(x-3)+(x-1)(x-3)+(x-1)(x-2);
y=a/b;
341デフォルトの名無しさん
2024/06/24(月) 19:35:34.10ID:maSlaTHT342デフォルトの名無しさん
2024/06/24(月) 23:33:41.46ID:FIb4AZ4T >>328-329
なんかダサい
https://paiza.io/projects/uc8gH6yNWCWKdQSYtqNREg
pub fn f(x: i32) -> i32 {
(
-2413f64*(x.pow(6) as f64)/120960f64
+739f64*(x.pow(5) as f64)/1260f64
-157991f64*(x.pow(4) as f64)/24192f64
+69551f64*(x.pow(3) as f64)/2016f64
-2691673f64*(x.pow(2) as f64)/30240f64
+88679f64*(x as f64)/840f64
-905f64/21f64
+0.5)
as i32
}
pub fn g(y: i32) -> i32 {
(
13f64*(y.pow(6) as f64)/120960f64
-(y.pow(5) as f64)/315f64
+1415f64*(y.pow(4) as f64)/24192f64
-1511f64*(y.pow(3) as f64)/2016f64
+144793f64*(y.pow(2) as f64)/30240f64
-3053f64*(y as f64)/280f64
+185f64/21f64
+0.5)
as i32
}
pub fn main() {
let a = vec![(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)];
for (x, _y) in &a { println!("{}, {}", x, f(*x)); }
for (_x, y) in &a { println!("{}, {}", y, g(*y)); }
}
なんかダサい
https://paiza.io/projects/uc8gH6yNWCWKdQSYtqNREg
pub fn f(x: i32) -> i32 {
(
-2413f64*(x.pow(6) as f64)/120960f64
+739f64*(x.pow(5) as f64)/1260f64
-157991f64*(x.pow(4) as f64)/24192f64
+69551f64*(x.pow(3) as f64)/2016f64
-2691673f64*(x.pow(2) as f64)/30240f64
+88679f64*(x as f64)/840f64
-905f64/21f64
+0.5)
as i32
}
pub fn g(y: i32) -> i32 {
(
13f64*(y.pow(6) as f64)/120960f64
-(y.pow(5) as f64)/315f64
+1415f64*(y.pow(4) as f64)/24192f64
-1511f64*(y.pow(3) as f64)/2016f64
+144793f64*(y.pow(2) as f64)/30240f64
-3053f64*(y as f64)/280f64
+185f64/21f64
+0.5)
as i32
}
pub fn main() {
let a = vec![(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)];
for (x, _y) in &a { println!("{}, {}", x, f(*x)); }
for (_x, y) in &a { println!("{}, {}", y, g(*y)); }
}
343デフォルトの名無しさん
2024/06/24(月) 23:39:26.44ID:FIb4AZ4T 係数はこっちで求めたでござる
https://paiza.io/projects/YvPFB5g4cCOtCXz1wpA86g
import sys, os
from functools import reduce
import sympy as sy
def lc(a):
x, y = sy.symbols('x y')
p = 0
for i, (c, d) in enumerate(a):
g = reduce(lambda s, t: (t[0], (s[1][0] * (1 if t[0] == i else (x - t[1][0])), 0)), enumerate(a), (-1, (1, 0)))
f = g[1][0]
p += d * f / f.subs(x, c)
print(p)
print(p.expand())
for c, d in a:
print(p.subs(x, c), p.subs(x, c) == d)
if __name__ == '__main__':
lc([(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)])
lc([(2, 1), (1, 2), (3, 3), (10, 4), (4, 6), (8, 8), (6, 10)])
https://paiza.io/projects/YvPFB5g4cCOtCXz1wpA86g
import sys, os
from functools import reduce
import sympy as sy
def lc(a):
x, y = sy.symbols('x y')
p = 0
for i, (c, d) in enumerate(a):
g = reduce(lambda s, t: (t[0], (s[1][0] * (1 if t[0] == i else (x - t[1][0])), 0)), enumerate(a), (-1, (1, 0)))
f = g[1][0]
p += d * f / f.subs(x, c)
print(p)
print(p.expand())
for c, d in a:
print(p.subs(x, c), p.subs(x, c) == d)
if __name__ == '__main__':
lc([(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)])
lc([(2, 1), (1, 2), (3, 3), (10, 4), (4, 6), (8, 8), (6, 10)])
344デフォルトの名無しさん
2024/06/25(火) 01:47:22.24ID:SRTwQJBb 1〜10は4bitに収まるから64bitのシフト演算と論理積(&)がOKなら簡単なんだけどな
やることはテーブル参照と変わらんけど
やることはテーブル参照と変わらんけど
345デフォルトの名無しさん
2024/06/25(火) 02:44:46.88ID:MBITUZQb346デフォルトの名無しさん
2024/06/25(火) 05:16:25.10ID:6VG6SXsU347デフォルトの名無しさん
2024/06/25(火) 07:25:12.24ID:H43UHQbv348デフォルトの名無しさん
2024/06/25(火) 07:47:56.32ID:hXiD4muz349デフォルトの名無しさん
2024/06/25(火) 08:03:22.73ID:ZJws2e45350デフォルトの名無しさん
2024/06/25(火) 08:54:41.29ID:Lgitw8zf お題スレが機能しなくなってゴミがあふれてきてんのかこれ?
351デフォルトの名無しさん
2024/06/25(火) 09:00:44.98ID:ZTu14b8J >>349
c++通らなきゃなんでこんなめんどいことするか理解できんだろ
c++通らなきゃなんでこんなめんどいことするか理解できんだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
