公式
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
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++通らなきゃなんでこんなめんどいことするか理解できんだろ
352デフォルトの名無しさん
2024/06/25(火) 09:03:31.00ID:9+k+boDP 「アセンブラ知らずにCって理解できるものなのか?」
↓
「C++の方が普通。Cは専門家向け」
↓
「いきなりRust」
↓
「C++の方が普通。Cは専門家向け」
↓
「いきなりRust」
353デフォルトの名無しさん
2024/06/25(火) 09:25:46.54ID:eEyTJz94 オレはPHPからRustに移行したよ
actix web使ってる
速さには感激してる
戸惑うのは謎のワーニングが出る時かな
mut付けてないのにmut付けるなってワーニング出たりする
cargo cleanとかすれば消えるんだけど
actix web使ってる
速さには感激してる
戸惑うのは謎のワーニングが出る時かな
mut付けてないのにmut付けるなってワーニング出たりする
cargo cleanとかすれば消えるんだけど
354デフォルトの名無しさん
2024/06/25(火) 09:32:01.85ID:GyGy4ZSw355デフォルトの名無しさん
2024/06/25(火) 10:36:22.38ID:398g93Vj356デフォルトの名無しさん
2024/06/25(火) 11:03:26.31ID:eEyTJz94357デフォルトの名無しさん
2024/06/25(火) 11:48:25.07ID:EN7MeMPi C++ を知っていると Rust がわかりやすいというよりも有難みを感じやすいとは思う。
なんだかんだで Rust は面倒くさいしそれなりに学習曲線の急上昇もあるのは本当だけど、
それでもなお Rust が良いと思えるのは C++ の駄目な部分についての反省が入ってるから。
C++ 的なものが必要な場面で C++ より上手くやるものという感覚で捉えてる。
なんだかんだで Rust は面倒くさいしそれなりに学習曲線の急上昇もあるのは本当だけど、
それでもなお Rust が良いと思えるのは C++ の駄目な部分についての反省が入ってるから。
C++ 的なものが必要な場面で C++ より上手くやるものという感覚で捉えてる。
358デフォルトの名無しさん
2024/06/25(火) 12:43:05.46ID:qH1sgo3/ 「Rustを学ぶためにC++を学ぶ必要があるか(学ぶといいか)」も定期的に沸くな
何度も見てて思うのが
「あなたはRustを学ぶ前にC++を学んでいたか」とYes/Noが一致して、平行線にしかならない議論なのでは
何度も見てて思うのが
「あなたはRustを学ぶ前にC++を学んでいたか」とYes/Noが一致して、平行線にしかならない議論なのでは
359デフォルトの名無しさん
2024/06/25(火) 13:05:45.82ID:ZtCD4zFU フランス語を学ぶときに英語を知ってる必要があるか(學ぶといいか)を考えれば良い
日本語←→フランス語だけ教わりたいのに英語學ぶ必要は無い
日本語←→フランス語だけ教わりたいのに英語學ぶ必要は無い
360デフォルトの名無しさん
2024/06/25(火) 15:05:50.09ID:UfTXO4rA Rustを学ぶ前に他言語を学ぶ必要は無い。
しかしプログラム自体の経験が浅いのなら、絶壁の学習曲線に挫折する可能性が高い。 そういう初学者はRusuではなく、とりあえずは動くところまで持っていきやすい言語を使って勉強したほうがいい。
しかしプログラム自体の経験が浅いのなら、絶壁の学習曲線に挫折する可能性が高い。 そういう初学者はRusuではなく、とりあえずは動くところまで持っていきやすい言語を使って勉強したほうがいい。
361デフォルトの名無しさん
2024/06/25(火) 15:23:35.53ID:bjcoCLHQ C++を経由しないでRustを使えてる人たちがたくさんいることから
C++が不要言語であることは間違いない
C++が不要言語であることは間違いない
362デフォルトの名無しさん
2024/06/25(火) 15:29:24.75ID:ZtCD4zFU >とりあえずは動くところまで持っていきやすい言語
Rustも変な事しなければとりあえずは動く
C/C++みたいに一見動いてるフリしてメモリ壊してたりに気付かない方が有害
Rustも変な事しなければとりあえずは動く
C/C++みたいに一見動いてるフリしてメモリ壊してたりに気付かない方が有害
363デフォルトの名無しさん
2024/06/25(火) 16:22:38.23ID:EN7MeMPi それはプログラミングに慣れてるから言えることで、
エラーになってくれることが心底から有難いことだと思えるのは
エラーにならずにぶっ壊れる体験を通してじゃないと無理だよ。
結果的にわかりやすいかどうかの話じゃなくて
学習する当人がちゃんと納得して学習し続けられるかというモチベーションの話としてね。
エラーになってくれることが心底から有難いことだと思えるのは
エラーにならずにぶっ壊れる体験を通してじゃないと無理だよ。
結果的にわかりやすいかどうかの話じゃなくて
学習する当人がちゃんと納得して学習し続けられるかというモチベーションの話としてね。
364デフォルトの名無しさん
2024/06/25(火) 16:57:26.38ID:bjcoCLHQ Cでmalloc/free面倒とか忘れたとか解放したのにポインタ残っていて使っちゃったとか体験しておいたほうがよいかもしれないが
C++は不要
C++は不要
365デフォルトの名無しさん
2024/06/25(火) 17:23:57.01ID:jUYULW90 >>363
つまり最初はPerlが良いってことか
つまり最初はPerlが良いってことか
366デフォルトの名無しさん
2024/06/25(火) 17:55:00.58ID:EN7MeMPi 初心者レベルだと C/C++ もRust も向いてないって話
367デフォルトの名無しさん
2024/06/25(火) 19:32:04.37ID:l0yCAl6v そう言えばHaskell難しい言うやつも似たようなこと言ってたな。
そんなに難しいと感じてなかったから不思議だったんだが、
自分でバグ作っておいて言語が難しいとか言うなよ…。
そんなに難しいと感じてなかったから不思議だったんだが、
自分でバグ作っておいて言語が難しいとか言うなよ…。
368デフォルトの名無しさん
2024/06/25(火) 20:03:41.12ID:qH1sgo3/ ID:ZtCD4zFU
ID:bjcoCLHQ
ID:bjcoCLHQ
369デフォルトの名無しさん
2024/06/25(火) 20:13:30.50ID:urOX5j9P 関数型言語を使ってるとRustの理解が少し早くなるよ
特にHaskellを知っていればtraitの理解も早いね
しかしRustを学ぶために関数型言語を知っている必要はないんだよな
同様にC++も知っている必要はない
特にHaskellを知っていればtraitの理解も早いね
しかしRustを学ぶために関数型言語を知っている必要はないんだよな
同様にC++も知っている必要はない
370デフォルトの名無しさん
2024/06/25(火) 22:48:01.04ID:3rDdWdgz Erlang使ってて良かったと思った
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」★2 [Anonymous★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 『しんちゃんと岸田さん』 [175344491]
- 【高市デイリー】 久しぶりにヤマザキデイリー行ったら 店内焼き立てパンの値段がバカ高くてワロタ。 晋さん、もう買えないよ…… [485983549]
- 自民「高市の一言でこれまで積み上げてきた関係が駄目になる。言葉の重みを分かっていない。自分でまいた種は自分で刈り取ってもらう」 [256556981]
- 中国発日本行の航空券、491,000件(全体の32%)がキャンセルされたと判明。高市どうすんのこれ [603416639]
- 日本株、大暴落!!! [252835186]
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
