1 名前:デフォルトの名無しさん [2022/04/17(日) 17:52:35.38 ID:KG26dcth.net] スレタイ(順番はRedMonk準拠)以外の言語もok 前スレ 次世代言語24 Go Nim Rust Swift Kotlin TypeScript https://mevius.5ch.net/test/read.cgi/tech/1647887021/
545 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:40:21.58 ID:gv+JQ3Ew.net] まつもとゆきひろ氏が考える、プログラミング言語の未来 https://logmi.jp/tech/articles/326541 楓:「今Ruby、Cの次に好きな言語はなんですか」。 まつもと:そうだな。Elixir、Go、Rustは気になるっちゃ気になるんですね。ただ、正直に言うとRustは僕の好みではない(笑)。 楓:おおー。気になるポ
546 名前:イントと好みじゃないポイントはどのあたりなんですか。 まつもと:やはりCを一番よく書くので、システムプログラミングの領域が、私がよくプログラムする領域なんですけど。そこに出てくる言語の中で今一番メジャーなのは、GoとRustであるというのが気になるところですね。 だけど、Rustが型でいろいろなことを言ってくれるのはうれしいところとうれしくないところがあって。つまりコンパイラに怒られるんですね。僕はコンパイラに怒られるのがすごく嫌いなので(笑)。なんかストレスがたまるんですよね。 楓:(笑)。 まつもと:どちらかというと、技術的なことではないところで一緒にがんばれるものがいいなって思っていて(笑)。 [] [ここ壊れてます]
547 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:49:59.25 ID:SgXGf86o.net] どの言語でも間違えればコンパイラに怒られる その程度でストレスがたまるならば頭がよくないのかもしれない
548 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:40:56 ID:N7JPl8Lh.net] コンパイラに怒られずにランタイムに怒られる方が ストレスたまりそうなんだが違う感覚の 人もいるんだなあ
549 名前:デフォルトの名無しさん [2022/05/15(日) 09:42:48 ID:am1d3hDu.net] 必要以上に怒られてるからクソって話なんでしょ
550 名前:デフォルトの名無しさん [2022/05/15(日) 09:49:32.98 ID:2T0P5EJz.net] ランタイムに怒られてもうまく問題点を見つけ出せる方が頭良い気がする 僕はあんまり賢くないからコンパイラが叱ってくれる方が楽
551 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:50:12.91 ID:C1KM65Ry.net] 自分がすごくプログラミングが出来る自負があるから、コンパイラに怒られるとプライドが傷つくから嫌だって言ってるようにも見える
552 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:52:43.88 ID:lixSo2ZB.net] ひろゆきは賢いからコンパイラは余計なことを小うるさく言わんでいいって感じ?
553 名前:デフォルトの名無しさん [2022/05/15(日) 09:52:58.51 ID:WKOj7Eq4.net] 自意識過剰で被害妄想だな コンパイラは怒ってるのではなくて指摘してるだけ
554 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:06:42.86 ID:6dsDjrbs.net] The compiler is your friend
555 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:31:50.86 ID:C1KM65Ry.net] Rustのコンパイラに怒られるってことは所有権のシステムとかが全然理解できてないんだと思う 前の職場にもc/c++を数十年やっててrustを毛嫌いしてる人何人かいたけど、今更自分がコンパイラに指摘されまくるのがプライドが許さないんだろうな
556 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:45:11.53 ID:duXfvT8B.net] >>542 「ゆき ひろ」なw
557 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:08:18.85 ID:68DnPwxB.net] 人間の理解を超えたところから怒られるのは違うかなと それってプログラムなのか?
558 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:12:52.72 ID:68DnPwxB.net] 囲碁や将棋はもうAIの方がかなり上に行っちゃって誰もAIに勝てない プロも含めてAIの手を研究してるけど理解できないのがかなりある それを意味も分からずただなぞって指してる人もいる プログラムはそのレベルじゃないけどそういうものに近づいてる
559 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:25:25.72 ID:+6kSxcdv.net] デバッグ含めた開発効率の良さを考えると可能な限りコンパイル時に怒って欲しいかな コンパイラが怒ってくれる > ランタイムが怒ってくれる > 誰も怒ってくれない
560 名前:デフォルトの名無しさん [2022/05/15(日) 11:45:48.58 ID:cL2R0opO.net] プログラムを書いてエラーが出ると「自分が否定された」「尊厳を奪われた」と感じる人もいる、という話 https://togetter.com/li/1698737
561 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:57:01.15 ID:UbJQuPTx.net] ランタイムは運良くバグを踏まなければずっと怒られずに済むのに対してコンパイラは必ず怒られるから 前者の方がいいって人もいるんだろうね
562 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:21:03.73 ID:uEAI3vEe.net] ドMなので
563 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:28:05.42 ID:0scjaaG3.net] コンパイルが通って、いざ実行してみたら 「segmentation fault.」とそっけなく言われるのもまた一興
564 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:43:05.95 ID:wf2KlSEE.net] >>545 そうゆう浅はかな考えは恥をかく元。常に所有権を意識しなきゃならないので、言うなら、呼び出される上のほうでロックしてても 複数スレッドでアクセスして安全なのに、所有権をいちいち意識しなきゃならないという事だ。 Rustはスクリプト言語の作者からすれば、面倒な記述が多すぎると感じて当たり前 強いて言えば、こういう浅い奴がマウントとってる現状のRustコミュニティは反吐が出る、Rubyコミュニティも好きでもないけど
565 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:56:50 ID:+mKsOYSe.net] >>554 貴殿も的外れ
566 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 14:03:03.21 ID:8BbShedD.net] そろそろ指摘するんじゃ無くて、勝手に直したり、良きに計らって欲しい。
567 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:06:40.70 ID:v+sSFlFE.net] >>545 実はそういうは人を排除するためだけにRustのプロジェクトを立ち上げたりしてる組織もある
568 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:29:27.60 ID:2Vop47w6.net] 陰湿やなあ
569 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 16:17:30.31 ID:SzIUVHZr.net] 今のコンパイラはエラーが起きた行を指摘するけど 「この辺がちょっと気になります」 と指摘してくれるコンパイラが そろそろ出てきてもいいような気がする エラーの種類はそんなにないと思うので
570 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 16:25:25.34 ID:VMVrIVgn.net] 静的解析ツールなら前からあるぞ。高いけど。
571 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:05:02.60 ID:68DnPwxB.net] 松本が所有権を理解してないんじゃないと思うがw まっつの言うこととこのスレの指摘はずれてると思う 松本の言ってることを理解してないだけ 気を付けて普通に書いてバグが出ないのが普通 それでも日常的にコンパイラに怒られるのは人間じゃなくて言語がおかしい
572 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 19:34:19 ID:bvYh9RC/.net] なんか最近開発に興味なくなってきた こんな時みんなどうしてるの? プログラミングだけが俺のアイデンティティだったのに 死ななきゃいけない?
573 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:04:07 ID:ezWJ6neI.net] さぁ?江頭2:50見て元気を貰うとかかな
574 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:21:42.85 ID:Fhttg/Du.net] >>563 あ?バカにしてんの?
575 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 21:31:15.68 ID:Wjdq3fA+.net] 最近のげんこはprintをpirntとか書くと、 候補を提示してくれるよね。 あたまいい!!
576 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:05:43 ID:QlsYdN5b.net] >>556 一部のコンパイルエラーは修正コード提案してくれるしIDEからボタンぽちで修正できるから、 それ発展させて意図が不明確なコードでも何種類か修正候補出してくれるようにならないかな
577 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:18:12 ID:yIEtIhqx.net] >>565 Qiitaに投稿された「TypoScriptを作った」を思い出した レーベンシュタイン距離が近ければOKっていうネタ言語
578 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 05:52:10.13 ID:x9xW3Kri.net] >>562 ぼくも(´・ω・`)
579 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 07:12:48.31 ID:3AP7f9yS.net] 英語圏のフォーラム見に行くくらいモチベあったのにな
580 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 08:44:14.30 ID:IfoxgD2F.net] >>545 Rustはマナー講師みたいなものだろ。 Rustが望ましいと考えるスタイルを強制して他のやり方を許さない。「なんで?」と理由を聞いても「それがルールだから」とか理解しがたいことしか言わない。 せめて「スタックにデータを保存するため」とか「Cleanみたいに参照透過性と性能を両立させるため」とか言えばいいのに、そういった思想的な背景を説明しないからマナー講師が跋扈する。
581 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 09:01:06.67 ID:nGMMRLLq.net] >>570 それはどのプログラミング言語でも同じ。 いずれの言語も独特のスタイルを押し付けてくる。 もしそれを感じ取れないならば、それは特定のスタイルに慣れてしまっているだけに過ぎない。 例えばわかりやすい例を持ち出せば、リアクティブな言語や宣言的な言語では、 a = b + 100 と記述しておけば、aが変わればそれに応じてbが変わるし、bが変わればそれに応じてaが変わる。 ところがそうでない不便な言語に出会ったときに、 双方向に自動的に変わってくれないために苛立つかもしれない。
582 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 11:59:09.62 ID:TAALxp7N.net] >>571 「それは特定のスタイルに慣れてしまっているだけに過ぎない。」と切り捨てているところに排他的思想&知識マウントを感じるね。 a = b + 100の例は代入演算に対して ("="から一般的に連想される) 「等しい」の意味を適用することにより生じる誤謬。 原理や技術的決定を理解せずに相手にルールを押し付けようとするマナー講師の話とは関係無いな。
583 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:13:57.85 ID:IoIRdAU7.net] >>570 むしろスタイルを強制しないプログラミング言語なんて存在するのか?
584 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:41:05.21 ID:8gGmt1rZ.net] 松本がRust好きじゃないのはまあそうだろうなとは思う。 この人、テストコードとかも好きじゃないとか言ってたし。 個人的にはそれじゃ仕事にならんだろとか思ったりはするけれど、とりあえずこの人のスタンスは一貫はしてるよ。
585 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 18:39:47 ID:qW5+0T97.net] >>570 マナー講師はフォーマットみたいな個人の好みレベルの話で コンパイラが指摘する構文とかセマンティクスはその言語の世界における自然法則みたいなものでは
586 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 19:09:08.37 ID:R1kAqWTp.net] >>575 エラーメッセージの問題じゃなくてドキュメントの問題かもしれないけど、エラーの形で否定するなら納得のいく理由を教えてほしいものだわ。 自然法則みたいな原理があるなら、その原理からどう推論したらそのルールになるのかの考え方も欲しいところ。 まぁ、それ以前のエラーメッセージしかしないクソ言語も多いけど。C++とか。
587 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 21:09:51.80 ID:qW5+0T97.net] >>576 rustのlifetimeとかborrowing周りのエラーはそんな感じでエラーになった理由は教えてくれるよ 例えばどんなエラーの原因を分かると嬉しいと思う?
588 名前:デフォルトの名無しさん [2022/05/17(火) 03:36:27.01 ID:maKCFX0H.net] Rustのエラーメッセージの親切さは異常
589 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 04:13:37.47 ID:tz+YwBRZ.net] 美人女教師のイラストでも添えたら エラーメッセージもそれっぽい口調にして
590 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:12:17.48 ID:t8H/GFrA.net] >>577 原因じゃなくて原理ね。 エラーメッセージとしてはとりあえずは原因と解決策で十分だけど、verboseの時とかは技術的背景とかポリシーとかを説明した解説へのリンクがあると嬉しい。特に制約の厳しいライフタイムとか借用とか。 まぁ、そうなるとrust版D&Eを書くようなものだから大変か。
591 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:22:18.93 ID:aOp3kwmZ.net] >>580 現状でもエラーによってはGitHubのissueへのリンクが付いてるから、具体的にこのエラーでこのページへのリンクを付けるべきって提案があれば受け入れられる可能性は高いと思うよ
592 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:39:46.07 ID:3guGxSPi.net] カンマとピリオドの間違いとか カンマが抜けているとか うっかり全角文字で記号をうっているとか 初心者にありがちなエラーを 「ひょっとして・・・」 と教えてくれるとうれしいかもしれない
593 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 09:03:36.05 ID:t0SSI9IZ.net] コンパイラ「Did you mean ',' instead of '.' ?」 俺「Fuck off!」
594 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 11:37:57.12 ID:V5JE6XCC.net] >>580 例えば、↓のコードをコンパイルすると https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0bd550e905a2263a33895815c4430436 error[E0499]: cannot borrow `x` as mutable more than once at a time てな感じでエラーコードが表示されて、以下の解説ページへのリンクが貼られている https://doc.rust-lang.org/stable/error-index.html#E0499 この中から関連するリファレンスへのリンクが貼られている 現状のドキュメントで十分ではないという問題はあるかもしれないけど、>>580 で言われているような方向性にはなっているよ >>582 上のコードのセミコロンを全角にしてみたらまさにそんな感じのメッセージが出た https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=118aa7e31d9c6c786d222f34a66623c3 error: unknown start of token: \u{ff1b} help: Unicode character ';' (Fullwidth Semicolon) looks like ';' (Semicolon), but it is not
595 名前:デフォルトの名無しさん [2022/05/17(火) 16:48:28.24 ID:DWSI+bpc.net] コンパイラのエラーメッセージに外部サービスのリンクって、もしそのサービス終わったらどうすんの?
596 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 17:38:26.91 ID:V5JE6XCC.net] >>585 rustのことなら公式サイトへのリンクだよ さすがに言語のメンテナンスが続く限りは大丈夫でしょう
597 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 19:22:14 ID:ARYpWsQd.net] なお誰もやらんもよう
598 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 09:51:35.50 ID:ynn+jzpi.net] 最も重要なマナーは プログラムなのかデータなのか不明な文字列等を使ってはならない つまりインタプリタを作ってはならない 文字列指向が好きな人にとっては オブジェクト指向こそが文字列を否定するマナー講師だった OOPを無視してstatic変数を使ってもコンパイラに怒られることはなかった 怒っているのはいつも人間だった
599 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:27:36.14 ID:Ahp8TrG/.net] Rustちゃんは生活のすべてを管理されたトップアスリートでヘソ出しユニに胸はぺったんこでショートヘアのすっぴんだけど最高の記録を出す Goちゃんはそんじょそこらの陸上部員で県大会レベルだけどボインボインのロングでシャワーを浴びたらそのままGoコンにGoできる どっちがいいかって話よ
600 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:29:12.91 ID:Ahp8TrG/.net] なおGoちゃんは無限に二股をかけられるという特技もある
601 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:33:58.07 ID:d4KplWCH.net] 意味不明なたとえ受けると思ってそう
602 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 01:02:59 ID:A/bJmwRQ.net] レベルが低すぎてRustスレで書けないRustの話しかしない駄スレ
603 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 03:37:27 ID:tiOCYDba.net] ____ / \ / _ノ ヽ、_ \ / o゚((●)) ((●))゚o \ ほんとはRustスレでやりたいんだお… | (__人__) | \ ` ⌒´ / ____ / \ / _ノ ヽ、_ \ / o゚⌒ ⌒゚o \ でもRustaceanはクオリティ高いスレしか相手してくれないお… | (__人__) | \ ` ⌒´ / ____ /⌒ ⌒\ /( ●) (●)\ /::::::⌒(__人__)⌒:::::\ だから次世代言語スレでやるお! | |r┬-|
604 名前:| \ `ー'´ / [] [ここ壊れてます]
605 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 07:21:25.71 ID:qtpsVsYu.net] Rustスレはフィボナッチ数列で無駄に盛り上がってる
606 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 08:06:23.76 ID:0sq8H5co.net] >>594 行列演算とかじゃなくてフィボナッチ数列かぁ……
607 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 09:05:30.63 ID:skF4IFrQ.net] 純粋アルゴリズムにrustは不向きだとなぜ気づかんのかな。。
608 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 09:31:27.55 ID:qCLhnuk6.net] >>595 なかなかゴミみたいな様相だよ フィボナッチ数列の第n項はメモ化しなくても線形オーダー、あるいは対数オーダーで計算できるのに、メモ化にこだわりのある人が「そのやり方はmainのループと合わせて計算量はn^2だ」とか言い出して散々
609 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 10:04:11.72 ID:73YqjaVk.net] >>596 個人的にはむしろ抽象化と両立が難しいところに新しい道ができたように思えた (過剰なメモ化なら言語関係なくやられがちな気がする)
610 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 16:45:27.87 ID:B4JoNxMk.net] フィボナッチ数列計算するのにあそこまでする必要はないわ
611 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:32:46.13 ID:nVnkC/ng.net] スレ見てないけどベクトル演算した方が速いんじゃないの知らんけど
612 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:36:21.53 ID:g6eOZZWy.net] Rustのスレなんだし、アルゴリズムで計算量を改善したりする話じゃなくて、Rustのベストプラクティスについて話してほしい
613 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:49:16.78 ID:nVnkC/ng.net] Rustのスレじゃねーんだなこれが
614 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:58:31.56 ID:UyuFXYvf.net] 数値計算はやっぱりJuliaかFORTRANが実行速度最速なのかしらん。
615 名前:デフォルトの名無しさん [2022/05/20(金) 18:17:57.67 ID:Cx5X7nNC.net] >>597 nが与えられた時に 『フィボナッチ数 F_n』を求めるのは単純にO(n)あるいは工夫してO(log n)で合っている ところがその『F_n』を求める関数を「ループでn回」用いて 『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を求めると当然n倍でO(n^2)またはO(n・log n)となってしまう それが後半の「そのやり方はmainのループと合わせて計算量はn^2だ」という話だと思うのでそれも合っている ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がlog(n)で済む つまり計算量を大きく節約できる この二つの区別を出来ているかどうかが重要なポイントかな
616 名前:デフォルトの名無しさん [2022/05/20(金) 18:30:54.17 ID:Cx5X7nNC.net] ごめん1箇所だけ記述ミスを訂正 >>604 × ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がlog(n)で済む ○ ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がO(n)で済む
617 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:27:34 ID:Cb6kz6Up.net] >>605 コテハン付けろよ。 NGにするから。
618 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:32:41 ID:0DaneQt4.net] 頭おかしくなっちゃった! -=≡ ∩ 彡⌒ミ ∩ -=≡ .ヽ(´・ω・`) / -=≡ ( / -=≡ ( ⌒) -=≡ し し'
619 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:02:33.19 ID:AMqMmZYo.net] >>604 そうそう、こんな感じで論点をどんどん変えてくんだよね フィボナッチ数列のはずがフィボナッチ数列の1~n項の計算にすり替えられちゃう
620 名前:デフォルトの名無しさん [2022/05/20(金) 20:07:15.27 ID:Cx5X7nNC.net] 『フィボナッチ数 F_n』を求めるアルゴリズム・計算量と 『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を求めるアルゴリズム・計算量は当然異なるからね 前者は繰り返し二乗法で1個の算出がO(log n)がベストだけど 後者で前者の方法を使ったら遅くなる 後者は単純に前二つを足していけばn個の算出がO(n)で済みそれがベスト
621 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:33:10.89 ID:AMqMmZYo.net] スレの流れとしては前者なのに一人だけ「数列だから初項からn項までの計算量を考えろ」とか頓珍漢なこと言ってるのよね
622 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:52:13.48 ID:EQAKr5b0.net] スレ見たけど最初から全員がフィボナッチ数列を列挙させているから >>609 で言うところの後者だな そして今日書かれた2種類のコード共に後者のイテレーター >>610 たぶん君だけが勘違いしている可能性が高いw
623 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:52:49.34 ID:pMSjr2Vl.net] フィボナッチ数列自体はただの例題なのに異様な執着心見せる人が居るよね なんかのコンプレックスこじらせてるのかな
624 名前:デフォルトの名無しさん [2022/05/20(金) 20:59:42.21 ID:Cx5X7nNC.net] >>610 フィボナッチ数列といったら F_0, F_1, F_2, ..., F_n, ... だよ それはともかく前者と後者でベストなアルゴリズムが異なるから前者だけの話をすることはありえないと思う そして後者のイテレータはそのまま前者をO(n)で求めることが出来るから どちらもO(n)で十分とするならばイテレータをプログラミングするのが自然じゃないかな
625 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:04:10.39 ID:uKCjuMHy.net] 職業マは生暖かい目で見守ってるよ 初学者・学生・無職・アマチュアプログラマが必死になれるのは 自転車置き場の議論だけだからね 昼間必死に書き込んでるやろ彼らは
626 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:07:40.93 ID:QySmFXhb.net] フィボナッチってO(1)では?(ビネ並感) 流れはよくわからないが、とりあえず本スレは盛り上がっているようで何よりだね
627 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:15:10.30 ID:EQAKr5b0.net] 各項のオーダーはO(1)可能だが複素数(行列)でムダに計算量多いだろw 結局一覧を列挙するなら足し算していくのが一番速い
628 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 00:28:12.49 ID:xHIjAvV7.net] スレタイ読めよアスペども
629 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 07:47:11.09 ID:0jWT+RR4.net] >>616 複素数じゃないよ、実数の範囲で計算できるよ
630 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 01:01:31.28 ID:Eq9f2SXv.net] Qitaベンチマークで、フィボナッチとかドヤァってるドアホ見るけど、片方の言語がoverflowチェックなどが入ってる演算を 使ってるのに、もう片方はチェックが入らない言語を使って比較してることがよくある。とんでもねえアホ さらにいうなら最適化レベルも、ループアンロールをデフォルトで勝手に行う言語と、明示しない限り行わない言語で 比較してたりメチャクチャなアホ。お前の推しの言語がチェック付き演算行ったら、お前の推しじゃない言語と変わらんからな
631 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 01:37:17.26 ID:o7ibVFPP.net] 当該ページを示さずに愚痴られても…
632 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 02:12:19.04 ID:aUQlcplw.net] 標準的なコンパイル方法・プログラムの書き方をした場合の比較になっているのなら意味はあるのでは
633 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 05:59:53.99 ID:YmsKfutR.net] 確かにCheckedAddとかで書いてるQita記事のフィボナッチベンチなんて見たこと無いね、逆に言うとそれしか意味がない。ベンチとは名ばかりのフワッとした自己満足オナニーだ、100mハードルと100m走くらべてるようなもんさ
634 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 07:01:43.76 ID:n2ZPTBPD.net] >>619 Rust本スレのフィボナッチはoverflowチェック入っているぜ https://mevius.5ch.net/test/read.cgi/tech/1652347700/181 >>622 それはその個人の問題点であってプログラミング言語の問題ではない
635 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 09:56:36.54 ID:vZp1MWnh.net] 顔真っ赤でコピペして来てるw 書いたどうだという話じゃない、それでベンチマーク取ってみろという話だよ。この流れが分からない奴は個人の問題点w いちいちオーバーフローがセーフな演算をchecked_addなんて冗長な書き方しか出来ないのだから、言語の問題でしょう? 標準的なコンパイル方法・プログラムの書き方をした場合、危険でズルなんだからw
636 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 10:48:59.78 ID:gzAO9YOH.net] >>623 うわっ、何このダサいコード
637 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 10:52:41.72 ID:ZgbkB3a0.net] フィボナッチが居ついちまったじゃないかよ。 お前ら責任取ってフィボナッチの話題禁止な。
638 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 12:30:43.66 ID:aUQlcplw.net] フィボナッチ呼ばわりはフィボナッチさんへの風評被害になるからやめな
639 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 13:17:40.25 ID:YSocoZUy.net] >>625 口だけ番長定期 これだから世界から糞バカ中世ジャップランド土人とか呼ばれるんだよ
640 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:35:29.13 ID:wWZ2mUik.net] >>624 それはあまりにも無知な発言 RustではC/C++やCPUでの同じ動作となっているにすぎない 例えばC/C++では (正確には未定義だが通常動作) int main() { char x = 127; x = x + 1; printf("%d\n", x); // 出力結果: -128 } Rustでは (普通にrelease modeの場合) fn main() { let mut x: i8 = 127; x = x + 1; println!("{x}"); // 出力結果: -128 } ちなみにdebug modeではpanicで知らせる release modeでもコンパイラに指定でpanicで知らせることも可能
641 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:38:27.39 ID:wWZ2mUik.net] >>629 に加えてRustでは let n: i8 = 126; の時、 println!("{:?}", n.wrapping_add(1)); // 出力結果: 127 // 溢れていないならその値 println!("{:?}", n.wrapping_add(2)); // 出力結果: -128 // 溢れたらラッピング(一周して)その値 println!("{:?}", n.overflowing_add(1)); // 出力結果: (127, false) // 溢れていないならばオーバフローフラグfalseが返る println!("{:?}", n.overflowing_add(2)); // 出力結果: (-128, true) // 溢れたらオーバフローフラグtrueが返る println!("{:?}", n.checked_add(1)); // 出力結果: Some(127) // 溢れていないならばOption型のSome(値)が返る println!("{:?}", n.checked_add(2)); // 出力結果: None // 溢れたらOption型のNoneが返る println!("{:?}", n.saturating_add(1)); // 出力結果: 127 // 溢れていないならその値 println!("{:?}", n.saturating_add(2)); // 出力結果: 127 // 溢れたらその型の上限の値 といったようにRustでは求められている状況に応じて容易に多様な対応を取ることが可能 Rustよりも用意周到なプログラミング言語があればその動作を教えて欲しい
642 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:44:29.35 ID:afBzb9pp.net] 顔真っ赤wwwwwwww
643 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:45:47.88 ID:dNJCbMGg.net] ここ2週間くらいRustスレずっとこんな調子だったんですよ 勘弁してほしい
644 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:58:24.00 ID:X9GYHqrY.net] 某R言語のユーザーは本当に気持ち悪いな
645 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 16:13:42.23 ID:zhKycwRA.net] 何が用意周到なんだか。言語のことを言ってるんじゃなく、「あくまでそれでベンチマーク比較すんなよド素人」という話だけなのに、ムキになって言語機能の紹介書いちゃうオジサン 蛇足的に言語のことを言うなら、RustよりまともなのはC#でcheckedキーワードの明示による算術のオーバーフローをチェックかな?安全に足し算したいだけで毎回checked_addなんて書くのは勘弁願いたいのは本音。C#もデフォルトで安全に倒すという思想からも逸脱してるとも言えるが