1 名前:デフォルトの名無しさん mailto:sage [2024/05/27(月) 06:41:26.82 ID:T4AFD1f4.net] 公式 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/
231 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 21:12:46.18 ID:Crm/SwBu.net] >>220 じゃあ言語の仕様をどうやって把握すんの? 何が出来ていれば Rust のコンパイラを実装できましたって言えるの?
232 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 21:13:16.76 ID:Crm/SwBu.net] >>224 できるというか、それが Rust のキモやで。
233 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 22:06:19.67 ID:DhqUa2Zy.net] ゴールポストを固定することが正しいという考えが衰退したんだよな 正しさを疑うことが常識になったから
234 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 22:29:00.55 ID:Crm/SwBu.net] >>228 ゴールを設定したいという話じゃなくて「今」どうなっているか見えないと疑うべきものすら存在できないって話なんだよ。
235 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 22:37:41.81 ID:ICtaqBL/.net] >>226 >じゃあ言語の仕様をどうやって把握すんの? 言語の仕様はリファレンスで把握しろよ >Rust のコンパイラを実装できましたって言えるの? 言える必要性が全くないやろ どうしても言いたければ公式が用意してるコンパイラと標準ライブラリのテストを全部通したらいいんじゃね?
236 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 23:02:11.93 ID:Crm/SwBu.net] >>230 端的に言うと現状のリファレンスマニュアルで Rust の仕様の全てを読み取ることは出来ない。 そのことは >>198 あたりからの話題の流れ。 リファレンスマニュアルは仕様を書くものじゃないし。
237 名前:デフォルトの名無しさん [2024/06/17(月) 06:58:24.07 ID:Yz55GwEO.net] 【マイクロ波センサー】長距離でも壁があっても動きを検出! ↓2010年ごろには完成 高齢化社会を支える“見守りシステム”の開発に成功-カギを握った半導体ソリューションとは ↓2026年ごろにさらに性能工場 旭化成、ミリ波・マイクロ波帯の空洞共振器による微小金属検査システムを開発 男女関係なく陰部を撮影 一度でも盗撮されていれば正確な色合いの・・・ 初期型は赤外線センサー【自動ドアのセンサなど】 子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功 AIを使って「赤外線カメラ画像のフルカラー化」に成功! 世界中で横行
238 名前:デフォルトの名無しさん [2024/06/17(月) 16:27:54.49 ID:prlYSpwu.net] 役に立たないどんぐり
239 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 21:23:17.19 ID:McDpAz4n.net] 卒業式でみんなで思い出を言うやつみたいだな 卒業生 「そして役に立たないどんぐり!」 卒業生一同 「どんぐり~」
240 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 21:51:46.63 ID:McDpAz4n.net] 卒業生A 「高速で動作しながら保たれる高いメモリ安全性」 卒業生一同 「安全性!」
241 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 22:06:12.81 ID:JE6O5Al9.net] 米ホワイトハウス「ソフトウェアはメモリ安全でなければならない」との声明を発表:「C」「C++」よりも「Rust」などの言語を推奨 https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
242 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 00:33:44.73 ID:Vx2LO8pn.net] 卒業生 「みんなで借りた所有権」 卒業生一同 「所有権!」
243 名前:デフォルトの名無しさん [2024/06/18(火) 02:26:00.95 ID:V90mUrMq.net] AIにC++とRustのコードを比較してもらった https://nshinchan01.hateblo.jp/entry/2024/06/18/021159
244 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 08:51:41.62 ID:Ee6IUiqA.net] 見えない仕様書より見えているコロンブスを殴る 殴る
245 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 09:12:34.89 ID:z6V+MJXC.net] >>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); }
246 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 12:23:59.59 ID:/B9kzKJY.net] Rustの仕様と実装の分離ができてないと、公式の実装が唯一になるから困る分野があるんだろうね。 Cとかコンパイラいっぱいあるじゃん。 Rustぐらい複雑で成長途上の言語で仕様を文書化して実装を交換可能にするなんて事実上無理っぽいけど、10年後ぐらいには問題でてくるのかもね。
247 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 12:31:26.48 ID:28rDJLEQ.net] >>241 現在のRustの仕様は実用的なプログラミングをする上で十分なレベルとなっているけど さらに便利にするための追加仕様がTODOリストに積まれていてそれらが少しずつ解決されて追加されていってる状況ですね まだ当面しばらくは現状体制のまま成長させていくのが望ましいと思います
248 名前:デフォルトの名無しさん [2024/06/18(火) 13:47:06.59 ID:4eNa7Q9X.net] 実装が仕様でもいいけど、その場合はその実装のコアの部分を明確にした方がいいかもね
249 名前:デフォルトの名無しさん [2024/06/18(火) 13:51:40.72 ID:LAg3uLnk.net] GPT-4oがAIベンチマークのARC-AGIで50%のスコアに到達、これまでの最高記録である34%を大幅に更新 2024年06月18日 ※さらに最適化すれば70%以上も可能な模様 スマホに搭載可能な小型透視チップが開発される 2024年06月18日
250 名前:デフォルトの名無しさん [2024/06/18(火) 16:50:36.49 ID:Q5+2E571.net] >>241 Cの標準化の更新なんて10年とかだろうが。
251 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 18:04:47.12 ID:dU1vPCRC.net] >>241 >Cとかコンパイラいっぱいあるじゃん。 それは各チップでそれぞれ別のCコンパイラが必要なのと クローズドソースでプロプライエタリのコンパイラを有償で販売できる環境があるからだよ Rustだと各チップで必要になるのはLLVM対応であってRustのコンパイラではないし リスクをとってまでプロプライエタリなコンパイラをわざわざ作るメリットもほぼない それにコンパイラが乱立しないというのは今のところはエコシステム的にはメリットしかない
252 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 19:09:22.28 ID:gzLiS43Q.net] gccが頑張ってるくらい?
253 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 19:12:43.09 ID:1V33WRQR.net] 団体がすべての主導権を握ってるならある日急にガラッと変えても誰も文句を言えない 実装が仕様です C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
254 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 19:12:43.05 ID:mK8t8Wj0.net] Rust Foundation自身がrfc3355をmergeして仕様策定やります宣言してるのに 今更そんなこと言ってもね
255 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 19:36:21.60 ID:mK8t8Wj0.net] そもそも、仕様を必要とするのはコンパイラだけじゃない ttps://blog.rust-lang.org/2022/07/01/RLS-deprecation.html 少なくとも、公式がrustc依存のRLSを捨ててrust-analyzerへの乗り換えを宣言した時点から 「rustc実装が仕様」状態から脱却しなくてはならないという意識はRust Foundation内にもずっとあったと考えるべきだろう
256 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 23:19:40.06 ID:AiI9Z/GF.net] Rustのコンパイラを作るために理解すべき仕様と Rustを使うために理解すべき仕様を 仕様という言葉で一括りにするから話がおかしくなる
257 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 01:01:46.69 ID:Xt21vW+E.net] >>248 >C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある コードを利用してる側の都合というのは複数の実装が存在するけど リファレンス実装やデファクトスタンダードが存在しないから規格がないと困るからでしょ 今も規格が生きてる言語というとC, C++, COBOL, Ada, Fortran, JavaScript, C#くらい C#を除くと各ベンダーがクローズドソースでプロプライエタリなコンパイラを作ってた時代からの言語 C#はOSS/マルチプラットフォーム化されて必要性はもうなくなってる
258 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 01:08:50.95 ID:8OfzU/dS.net] Javaも、本家SunとGnuとあったな。今は知らんが
259 名前:デフォルトの名無しさん [2024/06/19(水) 04:09:25.16 ID:Z3xOIU7u.net] ボイス・トォ・スカル スポーツで試用しているとそっく露呈 選手の動きを撮影してそれを2倍.4倍...スロー再生すれば明確に使用しているを見つけられる 通常の者でも動けなくとも音と動作は見えているのでそれをシミレーション【通常の者主軸】にあてはめて動作をみればよい それにプラスΑでそれが可能な回数を数学を用いて算出【科Ⓚ立論や物理的法則の確率論】すれば明らかにおかしいが判明 人間の筋肉量などを基本にの運動能力を設定しておくこと さらに公共の場で日常生活のⓀ感の鋭さを調べれば本人がその能力があるかがわかる 知力の方は根気よく罠にかけるように会話をしていけば露呈する
260 名前:デフォルトの名無しさん [2024/06/19(水) 07:18:12.06 ID:Z3xOIU7u.net] レーザーで「トリウム原子核」を励起することに成功、原子核時計などの革新的技術への道が開かれる 2024年04月30日 量子もつれの伝達速度の限界を解明することに成功! 2024/04/02 世界初!「量子もつれ」の画像撮影に成功 2019/07/15 量子テレポーテーションとワーム・ホールの移動速度判明 地球上に幽霊も神も観測可能なのになぜ観測不能? 量子テレポーテーション中は量子のもつれがないので双方観測不能 など考えましょう
261 名前:デフォルトの名無しさん [2024/06/19(水) 10:09:36.86 ID:Ml7xOhwE.net] ここもう、ちゃんと教えてくれる上級者を追い出し終えてしまったと思う 初心者が自分以下の初心者にマウント取るだけのスレになってしまった 最後まで我慢して付き合ってくれた上級者まで汚い言葉で追い出して。 そんなんだからいつまでも下手なんだろうし、しょうがないか
262 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 11:17:34.73 ID:1p8aP5/l.net] 上級者がいるとマウント取られてうざいから追い出し得だろ😅
263 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 17:53:51.50 ID:LFDUaW3g.net] 質問です イテレータから"名前1", "データ1", "名前2", "データ2", ...と渡ってくるのですが これを(名前, データ)のイテレータに変換する方法、または、そのように扱える方法ありますか?
264 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 18:29:49.29 ID:sNVXKo+0.net] 擬態初心者
265 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 18:44:02.73 ID:ZD2dEKbK.net] >>248 気に入らないなら、フォークすれば良いじゃん
266 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 18:46:24.24 ID:n3c3jE4n.net] パンがなければ?
267 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 19:22:09.94 ID:KTqBdjza.net] >>256 書き込み規制が頻繁過ぎて信頼できないプラットホームだからだよ。 そもそも使えないことがあるのは内容がどうこう以前に論外。
268 名前:デフォルトの名無しさん [2024/06/19(水) 21:18:42.18 ID:djSYTMJZ.net] このスレに上級者はいらねえ 真面目な質問をしたい時はissueか公式フォーラムかredditに行く ここにはマウントを取って気持ちよくなるために来ているんだ 上級者は去れ
269 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 21:32:54.13 ID:DBUer5Kw.net] >>258 1. itertoolsのtuples 2. nextを直接&指定回数呼び出すイテレータアダプターを書く 3. scan + filter_map
270 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 23:58:52.30 ID:sOHW1UBs.net] >>258 奇数個が来た時のエラー処理を考えると Result<(名前, データ), 残り>を返すイテレーターが適切 >>264 tuples()は奇数個エラーに気付けないのが惜しい
271 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 00:27:34.04 ID:AP0fcOd2.net] >>265 奇数個はエラーってのはタプルの要素数2個の場合限定なので もう少し一般化して使える方法がいいと思うよ itertoolsはchunksとか他にも使えるやつがあるから用途に応じて使い分けてね
272 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 00:30:45.20 ID:GE8fSxUT.net] chunksは使いにくくタプルにするのも面倒だな
273 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 00:49:36.16 ID:1qQq2QC1.net] 複おじに餌を与えないでください
274 名前:デフォルトの名無しさん [2024/06/20(木) 02:27:54.12 ID:s4SRXQdp.net] いつの間にかHaskellがC#より速くなってた…。 https://nshinchan01.hateblo.jp/entry/2024/06/20/021327 HaskellとC#だけでなく、Rust/Pythonともベンチマーク比較してますのでどうぞ( ^^) _旦~~ (コードも掲載してるので、速度だけでなくコードの比較にもなってます)
275 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 08:11:10.55 ID:EWbar4Kg.net] HaskellあればRustいらねーじゃん
276 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 08:16:50.61 ID:cxaQEnhn.net] print!(""); この"!"いらんやろ なぜ付けた
277 名前:デフォルトの名無しさん [2024/06/20(木) 08:54:48.96 ID:r+KYpvqW.net] Haskellはもっと高速に動作するようにしてくれ
278 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 09:08:01.19 ID:868QLl9r.net] >>271 !はマクロ Rustは関数のオーバーロードがない Rustは可変長引数もない これらの弱点をマクロでおぎなっているんだよ
279 名前:デフォルトの名無しさん [2024/06/20(木) 09:25:21.08 ID:r+KYpvqW.net] Rustはマクロをカジュアルに使いすぎ
280 名前:デフォルトの名無しさん [2024/06/20(木) 10:13:19.20 ID:gE9bPm4O.net] 正体不明ぼいす・とぉ・すかる【非接触型ムーンショット一式】 AIも発展してきて論文全て読み込ませて作成可能のAI返答なので実在している 世界中の建前 器機所持者と機器秘所持者と機器非所持者ぼいす・とぉ・すかる=非接触型ムーンショットそんな物無い! かくなる上は統合失調症だ! 煩いので統合失調症を薬や自殺したことにしてカルテに! さらに最近は作成しやすいので脇が甘いチームを見つけ次第コロナや感染症で死亡したことにします! 世界中の本音は現実は無慈悲 内臓疾患やバイオテロでの殺害! 統合失調症寿命を平均25年短く殺害! 非器機所持者に 世界で初めて固体電池を採用しパワー・安全性・耐久性・バッテリー寿命が超絶高まった最大出力4000Wのポータブル電源「YOSHINO B2000 SST」は家電を複数余裕で動かせてUPSとしても使用可能 2023年12月28日 ※最上位は最大出力 6000w これを最低4機?被害者に向けて配置して合計24000wの電磁波を集中できる配置にしていると犯人は宣言 ウナギの放電」は近くの生物の遺伝子を組換えていた!? 2023/12/11
281 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 12:40:54.14 ID:eIGp2b4r.net] >>274 コンパイル時に展開して検証されるんだから、好ましくね? 実行時に解釈されて挙動が変わるJavaのアノテーションやRubyみたいなのよりよほど好ましいと思うが。
282 名前:デフォルトの名無しさん [2024/06/20(木) 12:47:30.50 ID:s4SRXQdp.net] >>272 速いHaskellをお求めならIdris2が正格評価なHaskellという位置づけです。 無限リストを失うので、代わりにStreamとか色々概念が増えてるようですが。 (私は無限リスト含め、少ない概念でプログラミング出来るHaskellに惚れているので、速さはあまり気にしない) 一応、HaskellもTemplate HaskellでC++みたくコンパイル時実行して、ガシガシ定数に出来るのは定数にすれば速さも期待できますが。 >>270 HaskellはC#と同じくGCあるので、組み込みとかタイミングが命の金融系や車載系は向きませぬ…。
283 名前:デフォルトの名無しさん [2024/06/20(木) 12:50:51.75 ID:r+KYpvqW.net] >>276 Rubyと比べて好ましいってのはなんの擁護にもなってないんだよな むしろRubyと比較されうるというディスだろこれ
284 名前:デフォルトの名無しさん [2024/06/20(木) 17:05:35.72 ID:F8Q2DGBi.net] >>276 同意します
285 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 17:45:56.15 ID:sFnTxIc/.net] Rustのマクロは全言語の中でも優秀だからね 手続きマクロの強力さと利便性は他では代えがたい 宣言マクロももちろん衛生的(健全)で汚染がない
286 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 17:48:12.64 ID:Yb1hkWJo.net] >>278 言語と言語の持つ機能を分離して評価できない方だったか。
287 名前:デフォルトの名無しさん [2024/06/20(木) 17:59:47.84 ID:/aYWwCEV.net] >>281 いやRubyなんかどう分離してどこを切り取ってもRustと比較すること自体がRustへのディスだから
288 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 18:45:58.46 ID:zOlAS9GZ.net] 使い分けのできないバカしかいないのかな?
289 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 19:23:04.79 ID:XVLgMtD/.net] >>280 Lisp
290 名前: 警備員[Lv.20] mailto:sage釣 [2024/06/20(木) 19:39:03.89 ID:qDF/54rU.net] >>280 forth
291 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 19:39:05.96 ID:sFnTxIc/.net] >>284 Lispは衛生マクロではないため失格
292 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 20:00:53.20 ID:9lgCTTyf.net] >>280 Scheme
293 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 20:05:57.11 ID:YFatQNUq.net] Rustの手続き型マクロは構文木を自由自在に扱えるし、宣言型マクロは汚染がなく健全だから、Rustより上の言語は存在しないと思うよ
294 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 22:08:57.89 ID:0f6ktMCR.net] paiza.ioでクレートを追加する方法を教えてください https://i.imgur.com/RkQr1Wu.png
295 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 22:19:44.74 ID:XVLgMtD/.net] Scheme の仕様 R6RS では識別子に文脈情報がくっついているモデルの手続き的マクロが導入されて伝統的マクロと衛生的マクロの統合がされた。 Rust のマクロが複数種類ある状況と、構文木とトークン列を行き来するモデルは(有用で強力だが)整理されてない不恰好さを感じるところはあるよ。
296 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 22:21:58.65 ID:p8EeWSs1.net] 手続きマクロは別クレートが必要なのが面倒だし いろいろと改善の余地はあると思う
297 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 22:53:46.34 ID:L3G38ey0.net] >>267 >タプルにするのも面倒だな chunkをtuples()すればいいだけだよ 面倒?
298 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 22:59:31.43 ID:L3G38ey0.net] >>265 >Result<(名前, データ), 残り>を返すイテレーターが適切 残りを扱いたい場合はイテレータが返す要素の一部として残りを表現するよりも chunks_exactのようにイテレータを消費して終わった後に別途残りを取得できる形にしたほうが親切だよ
299 名前:デフォルトの名無しさん [2024/06/21(金) 01:29:07.25 ID:4fJ/I6Gh.net] >>289 無理 ソースコピペでうまく行くケースもある
300 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 05:51:59.15 ID:KnPUDwDa.net] >>289 rust playgroundを使った方が良いと思われる
301 名前:デフォルトの名無しさん [2024/06/21(金) 06:59:01.53 ID:6/+cQ+0X.net] >>289 そこでダメならideoneがあるじゃないか!
302 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 09:59:00.28 ID:M8EEKVG+.net] rust playground はチョットマシなだけで 五十歩百歩目くそ鼻くそ
303 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 11:42:29.74 ID:M8EEKVG+.net] >>289 巣に還れ https://mevius.5ch.net/test/read.cgi/tech/1691038333/
304 名前:デフォルトの名無しさん mailto:sa
[] [ここ壊れてます]
305 名前:ge mailto:2024/06/21(金) 12:58:06.76 ID:wIxdZD1d.net [ 乱数はこれを実装してみた 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 ] [ここ壊れてます]
306 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 14:07:02.11 ID:M8EEKVG+.net] 久々に観掛けた static おじさん
307 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 14:19:00.2
] [ここ壊れてます]
308 名前:0 ID:TK0ahnJz.net mailto: 競プロ勢だよ [] [ここ壊れてます]
309 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 17:07:40.60 ID:wIxdZD1d.net] staticやめてみた https://paiza.io/projects/ooofhkI8laowBqzzDN6RsQ
310 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 22:48:19.44 ID:zGyXPRVd.net] >>292 tuples()は余っても余らなくてもNoneを返して終わってしまうため今回の場合はあかんね >>293 chunks_exact()はイテレータには使えない スライスは長さがわかっているから対応できるけど
311 名前:デフォルトの名無しさん [2024/06/22(土) 11:51:50.83 ID:7Ziu80uC.net] すまんが、ClippyのAI版みたいなのってあるの? Youtubeを見ていたら、「ClippyはAIのを除けば一番よく指導してくれる」旨を言ってる人がいてさ AIの似たようなツールがあるって直接言ってるわけじゃないんだけど、なんか気になる表現をしてたんだ あるんだったら使ってみたいな
312 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 14:30:20.31 ID:boWDxemH.net] 深い意味は無いので気にしすぎです
313 名前:デフォルトの名無しさん [2024/06/22(土) 15:07:04.48 ID:GlPOaJ+f.net] 加熱するLLM開発競争に冷や水、オープンモデルの組み合わせだけでGPT-4o越えの事実 https://wirelesswire.jp/2024/06/86709/
314 名前:デフォルトの名無しさん [2024/06/22(土) 21:58:27.39 ID:9CBpYiTc.net] >>304 それはRustに限らずプログラミング全般において「ChatGPTなどのAIに質問をすれば良い回答をしてくれる。そのようなAI系を除けばRustのClippyは良い仕事をしてくれる」という話だろう 「ClippyのAI版」という具体的なツールがあるわけでなく、もっと一般的な意味でのAIという文脈かと思う
315 名前:デフォルトの名無しさん [2024/06/22(土) 22:33:47.59 ID:dw6Bjmix.net] >>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); } } } }
316 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 23:41:03.46 ID:jxx0duBQ.net] 関数型というと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); }) }) }) }
317 名前:デフォルトの名無しさん [2024/06/23(日) 01:55:08.61 ID:iAmtDmVE.net] そうなんだけど、C#でやったらForEach使うためにやたらToListを経由させられて逆に読みにくくなった。 これはHaskellも無理に高階関数やモナド演算子(>>/>>=)ばかりじゃなくて、適度にリスト内包表記やdo記法も合わせた方が読み易いのと同じだと思う。
318 名前:デフォルトの名無しさん [2024/06/23(日) 02:43:59.44 ID:FDfmyhMX.net] >>308 が関数型プログラミング *バリバリ* 何て書くからだろ。 俺も 308 のどこがバリバリ?と思ったわ。 関数型バリバリが読みやすいかどうかは別の話よ。
319 名前:デフォルトの名無しさん [2024/06/23(日) 04:04:02.58 ID:iAmtDmVE.net] AIは現段階ではネットから拾ってくるだけだしね。 「もっと短くしてください。」を繰り返すと同じコードしか吐かない。 無理なら無理って答えろよっていう…。 それにしてもRustのfor_eachメソッドはindex行けるのか。羨ましい。 C#はSelectはindex使えるけどForEachは使えない。 逆にSelectはWriteLine使えないけどForEachは使えるという…。 (Forメソッド?が欲しい) Rustはその辺、最初から関数型プログラミングを意識してるからfor_eachメソッド使ってもそこまで読み難くなってないな。
320 名前:デフォルトの名無しさん [2024/06/23(日) 04:08:15.53 ID:iAmtDmVE.net] あ、>AIは現段階ではネットから拾ってくるだけだしね。 っていうのは for文を全く使わないようなコードは、Web上の(ユーザーの)評価も低いのでAIの評価基準でも選択されないって意味ね。
321 名前:デフォルトの名無しさん [2024/06/23(日) 09:12:12.96 ID:2+8typ11.net] >>308 clippyは公式のコード改善ツールだよ コンパイラはエラーと警告だけ出すけど、clippyはそれ以上のヒントをくれる 例えば「コンテナ中に条件を満たす要素があるかどうか」をチェックするために items.iter().find(条件).is_some() のようなコードを書いたら、それに対し items.iter().any(条件) というシンプルな書き方を提案してくれる こういう関数や構文の置き換えを含む提案をしてくれるツールで、これがコンパイラと同じ標準機能として備わってる (追加インストール不要) のが便利
322 名前:デフォルトの名無しさん [2024/06/23(日) 09:41:40.50 ID:iAmtDmVE.net] いい勉強になった。ありがとう。
323 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 10:21:20.16 ID:ndMGRV9p.net] >>312 for_eachの機能でindexにアクセスしてるんじゃなくて enumerateで(index, value)の形に変換してそれをfor_eachしてるだけだぞ 標準でenumerate相当のメソッドが用意されてないだけで ForEachでindexを扱うときはC#でも似たようなやり方になる
324 名前:デフォルトの名無しさん [2024/06/23(日) 16:42:06.61 ID:+hC7ZOW/.net] 正体不明ボイス・トォ・スカル 正体不明ぶれいん・ましん・いんたーふぇいす 対になっているのか? 周囲も被害者の思考を聞いているのならわかるように 被害者の声【思考】は初めの6か月間は聞えてなかった 6か月過ぎたころから被害者の思考が被害者自身で聞こえるようになった 被害者に話しかけている加害者側の正体不明ブレインマシンインターフェイスはどこにあるのだろうか? 被害者側の思考が漏れているのなら周囲の者は電磁波で夜も眠らされていなかったことや昼間横やりを入れているのは周知の事実 これから考えて被害者の思考のみが持てていると電磁波攻撃をしている者は被害者が嫌いこの条件がそろえば被害者に対して罵声を浴びせる被害者周囲者が出現する 被害者を見る限りそのような罵声を浴びせる者が出現しないということは 正体不明ボイス・トォ・スカルをしている者の思考はどこに漏れているのでしょうか? また周囲の者も正体不明ボイス・トォ・スカル側についたものはどこに思考が漏れているのでしょうか? 等いろいろなパターンを考えましょう ボイス・トォ・スカルで話していたホワイトリストとブラックリストこれが重要な意味を持っていると思われる 現実的に騒がなければ被害者には何も起きていない・・・各加害者が?一番聞かれると困る者に聞かせているというのも意味深です
325 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 21:00:39.70 ID:GCEM9Zx1.net] Rustツアー https://tourofrust.com/00_ja.html 説明が簡潔すぎてモヤモヤが増えていくばかり。 しかも終盤は翻訳されていない。
326 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 22:32:11.71 ID:CiIX8R/B.net] >>318 翻訳が進んでないのはともかくとして、説明が簡潔なのはそういうもんだわ。 チュートリアルでもつっかえるやつはいっぱいいるのに雑なツアーだけで理解できるわけないだろ。 複雑なところに立ち入る前に概略を見るってのと それをすぐさま実行して確かめれらる環境がくっついてるってのがコンセプトなので 細かいことは The Rust Programming Language を見るのが前提。 こういった種類の学習は各項目を完璧に理解してから次の項目に進むってのは出来ない。 色んな言語機能は絡み合っていて綺麗な順番には出来ない。 全体を大雑把につかんでから解像度を高めていく形になる。 その一番最初のおおざっぱなところを担当する形の資料ってこと。
327 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 22:46:50.25 ID:cgFz9E69.net] C言語と関数型言語とあと何かモダンな言語の三様な言語を使える程度の知識経験があればRustはすらすら学習できるけど それらのうち何らか知識が抜けているとその言語間での汎用的な知識も新たに学習することになるからちょっと大変になるようだね
328 名前:デフォルトの名無しさん [2024/06/23(日) 23:42:57.08 ID:iAmtDmVE.net] >>316 そこは理解してる。 んで、Rustのfor_eachはenamerateさえすればindex使えるし、出力も出来る。 そこがC#のForEach場合、そもそもindexが使えないので一旦indexを使えるSelect & ToListを挟むことになる。 出力を考えなければ不便はないけど、出力を考えたとたんにSelect & ToListが付いてくる。 この辺は将来のバージョンに期待かな。
329 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 01:22:36.88 ID:xscSUycb.net] >>321 理解してないでしょ Enumerable.Range(7, 10).WithIndex().ForEach(x => { var (index, value) = x; Console.WriteLine($"{index}: {value}"); }); https://dotnetfiddle.net/aJJwdY
330 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 01:27:35.74 ID:xscSUycb.net] .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())になる
331 名前:デフォルトの名無しさん [2024/06/24(月) 04:37:42.69 ID:De91wzz6.net] >>322 おお…。 確かに理解してませんでした。 ちなみに、私もその後何とかSelect内で出力を出来ないか思考錯誤したら出来たのですが、「違う。そうじゃない」な結果に^^; File.ReadAllLines(fileName).Select((line, i) => { Console.WriteLine($"{i + 1,2}:{line}"); return 0; });