公式
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
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使ってて良かったと思った
371デフォルトの名無しさん
2024/06/25(火) 23:04:44.45ID:8sxbkiyD バレおじw
372デフォルトの名無しさん
2024/06/25(火) 23:30:51.26ID:oKw2Pfcc373デフォルトの名無しさん
2024/06/25(火) 23:49:25.06ID:ThxORcgc >>369
>特にHaskellを知っていればtraitの理解も早いね
これには全く同意できない
type classというかHaskellとはやり方もできることも違いすぎるから
そもそも何の事前知識なくてもtraitは容易に理解できるでしょ
>特にHaskellを知っていればtraitの理解も早いね
これには全く同意できない
type classというかHaskellとはやり方もできることも違いすぎるから
そもそも何の事前知識なくてもtraitは容易に理解できるでしょ
374デフォルトの名無しさん
2024/06/26(水) 08:25:01.52ID:egC8x8gn 神 精霊 絶大なエネルギーを使用可能
幽霊 人間を疲れさせるや一時操作可能
@エネルギーの貯蔵の仕方は➁そのエネルギーの発生方法はBそのエネルギーを貯蔵する方法はCそれだけのエネルギーの物体を科学で観測不能はなぜ
6G通信に使われるテラヘルツ帯の電波、脳細胞の成長を促進
2022/08/16
タンパク質の操作/マイクロ波等の照射が記憶に影響
2008/11/01
男性の精子の減少、携帯電話の使用と関係か 最新研究
2023/11/02
統合失調症.発達障害.各身体症状 など国力低下
人為的で身体攻撃
威力を測定すれば判明するのにテロリストを野放し
全ての精神病
@ 英キングス・カレッジ・ロンドンをはじめとするグループは、人間の脳内で発現している古代ウイルス由来のDNA配列を調べ、それがうつ病・統合失調症・双極性障害といった主要な精神疾患のなりやすさと関係していることを明らかにした。
➁九大、後の出来事が直前の出来事に錯覚を起こさせる脳の仕組みの一端を解明
2024/06/05
C幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
D3歳までに脳は形成される
E統合失調症などの患者に幻覚や妄想を引き起こす脳のネットワークがAIを使った研究で明らか
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
※MRIで物理的に神経の接続問題観測可能
嘘つきの知的障碍者と精神障碍者や認知症の者発見
◇電磁波攻撃はあるとないどの思考【組織】の者が話しているのかな
マイクロ波聴覚効果やボイス・トォ・スカル発見可能
電磁波している者守りたいもの守りたくないものの判別方法は各対象者の将来で名よある地位やよい未来の映像と悪い未来の映像を見てもらえば副交感神経と交感神経の差と脳波パターンをみたら判明する
幽霊 人間を疲れさせるや一時操作可能
@エネルギーの貯蔵の仕方は➁そのエネルギーの発生方法はBそのエネルギーを貯蔵する方法はCそれだけのエネルギーの物体を科学で観測不能はなぜ
6G通信に使われるテラヘルツ帯の電波、脳細胞の成長を促進
2022/08/16
タンパク質の操作/マイクロ波等の照射が記憶に影響
2008/11/01
男性の精子の減少、携帯電話の使用と関係か 最新研究
2023/11/02
統合失調症.発達障害.各身体症状 など国力低下
人為的で身体攻撃
威力を測定すれば判明するのにテロリストを野放し
全ての精神病
@ 英キングス・カレッジ・ロンドンをはじめとするグループは、人間の脳内で発現している古代ウイルス由来のDNA配列を調べ、それがうつ病・統合失調症・双極性障害といった主要な精神疾患のなりやすさと関係していることを明らかにした。
➁九大、後の出来事が直前の出来事に錯覚を起こさせる脳の仕組みの一端を解明
2024/06/05
C幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
D3歳までに脳は形成される
E統合失調症などの患者に幻覚や妄想を引き起こす脳のネットワークがAIを使った研究で明らか
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
※MRIで物理的に神経の接続問題観測可能
嘘つきの知的障碍者と精神障碍者や認知症の者発見
◇電磁波攻撃はあるとないどの思考【組織】の者が話しているのかな
マイクロ波聴覚効果やボイス・トォ・スカル発見可能
電磁波している者守りたいもの守りたくないものの判別方法は各対象者の将来で名よある地位やよい未来の映像と悪い未来の映像を見てもらえば副交感神経と交感神経の差と脳波パターンをみたら判明する
375デフォルトの名無しさん
2024/06/26(水) 12:30:12.07ID:j6fp+f8B376デフォルトの名無しさん
2024/06/26(水) 12:31:27.14ID:j6fp+f8B >>373
事前にやるならNimの方が良いよ
事前にやるならNimの方が良いよ
377デフォルトの名無しさん
2024/06/26(水) 13:01:41.83ID:eR4cI6Xf Rustを学ぶ前に他の言語を学ぶ必要はないけど
全くプログラミング言語を知らないならシンプルで学習例も多いC言語一択だね
ポインタとヒープの扱いまで学べたらたらC言語を忘れてRustへ
全くプログラミング言語を知らないならシンプルで学習例も多いC言語一択だね
ポインタとヒープの扱いまで学べたらたらC言語を忘れてRustへ
378デフォルトの名無しさん
2024/06/26(水) 14:31:44.00ID:uKek7pO0 デストラクタの動きを知らないで本当にrustできんの?って思うけど
379デフォルトの名無しさん
2024/06/26(水) 14:43:55.70ID:eR4cI6Xf スコープを抜けた時にデストラクタが自動的に呼ばれる
それだけ
予備知識を必要としない
それだけ
予備知識を必要としない
380デフォルトの名無しさん
2024/06/26(水) 14:54:42.66ID:j6fp+f8B Rustのデストラクタの描き方ってなんであんなんなん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 20代の3割が「テレビ見ない」現実…そして静かに広がる「究極のテレビ離れ」とは [muffin★]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- んなっしょい🍬禁止🈲のお🏡
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】ガラパゴス島国ジャップ、自分達の容姿が優れてると錯覚してしまう [383063292]
