Rust part9

■ このスレッドは過去ログ倉庫に格納されています
2020/08/23(日) 01:07:35.52ID:MgEpWwVh
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

前スレ
Rust part8
https://mevius.5ch.net/test/read.cgi/tech/1579834072/
2020/12/10(木) 11:43:02.02ID:U7s1vwLT
>>294
実際には沢山あって、例えば、makefileやUnixのシェルスクリプト、BATファイル、
Perlの関数呼び出しなんかがある。
2020/12/10(木) 11:57:47.75ID:U7s1vwLT
正規表現やLISPなんかも可読性が低い。
2020/12/10(木) 12:16:53.52ID:hyB2wVsL
LISPが可読性低いはモグリ
2020/12/10(木) 12:25:40.73ID:YXjbRyJb
クポー!
2020/12/10(木) 12:41:56.12ID:oYgS32h8
>>352
具体的な記述例上げてくれないと何の説得力も無いぞ
2020/12/10(木) 15:03:07.81ID:YBB2SlAl
いつものヤバイ人だってすぐわかるだろ
荒らしの相手をするのも荒らしだぞ
2020/12/11(金) 11:56:33.87ID:/1hdqM5e
Cを日常的に使っていた人がRustに移行しようとするとやりたいことが出来なくて
馬鹿馬鹿しくなる。
数学的には完全に安全な書き方なのにRustには怒られる。
2020/12/11(金) 12:12:02.16ID:NpU6prgS
Rust by Example によれば
drop が (自動で) 呼ばれるのは「スコープの終わり」と書いてあるけど、
それは変わってないと考えていいよね?
最終のアクセスがスコープのまんなからへんだったとしても、
drop はスコープの最後ってのは今でも保証されるんだよね?
2020/12/11(金) 12:22:51.07ID:aOnuSvpC
っぱ、D言語よ
2020/12/11(金) 12:39:48.46ID:RI9UvvOD
>>360
>>289
2020/12/11(金) 18:10:27.06ID:7ILiijQb
数学的に完全に安全であるって証明を必要十分な早さで必要十分な量のコードに対して出きる人なら
おとなしくC使ってた方が良いんじゃないですかね
2020/12/11(金) 20:55:17.88ID:FrajMXPf
>>359
自信あるならコード見せてみな?
https://play.rust-lang.org/
2020/12/12(土) 01:56:14.01ID:4q8SABHv
>>364
いやです。
2020/12/12(土) 01:56:52.38ID:4q8SABHv
>>363
少なくともRustは使いません。
2020/12/12(土) 02:31:40.86ID:ub7HMY53
>>366
さようなら
2020/12/12(土) 02:52:34.60ID:4q8SABHv
問題点を指摘されたら排除する風潮。
2020/12/12(土) 02:55:04.93ID:ub7HMY53
だってあなたがここに残っても得られる物何もないでしょ
370デフォルトの名無しさん
垢版 |
2020/12/12(土) 03:02:09.48ID:SyIWV3x/
アメリカでは人気言語なんだろ?
つまり問題なく安全に使えてるってことだよね
2020/12/12(土) 03:03:58.91ID:4q8SABHv
>>370
本当はそんなに人気無い。
372デフォルトの名無しさん
垢版 |
2020/12/12(土) 03:12:39.08ID:SyIWV3x/
全お前の中ではそうだろうね
2020/12/12(土) 03:12:53.23ID:Dxj0vT3B
>>359
なんでunsafe使わなかったの?
2020/12/12(土) 15:08:06.15ID:c8Fd2aiR
>>365
なぜ?
数学的には完全に安全なのに
375デフォルトの名無しさん
垢版 |
2020/12/12(土) 15:30:46.47ID:0QXb5/mT
数学的にもOKでも、書いてるのはコードなんだからプログラミング的にもOKじゃないといけない
っていうマジレスでいい?
言語には仕様があるわけでどの言語でもそうだろ。
そもそもプログラミングしない方がいいよ、数学でもしてりゃいいじゃん
2020/12/12(土) 16:08:31.70ID:Xc3o7Cw9
コンパイラが証明できないけど人間が証明できるときのためにunsafeがあるんだから使えばいいのに
2020/12/12(土) 16:37:40.21ID:M7Hs6d8R
数学的には完全に安全ww
こんな低脳ワード使ってるやつ相手にして君たち頭おかしいんとちゃう?
2020/12/12(土) 17:13:45.58ID:ub7HMY53
完全に安全ってフレーズだけは韻踏んでて好き
2020/12/12(土) 18:01:42.98ID:E+dxDDH/
チューリング安全
2020/12/12(土) 23:00:12.57ID:a3JdWCxW
ヨシ! 今日も一日 ご安全に
2020/12/12(土) 23:31:38.16ID:Updd5mRQ
今日は安全日なの。
2020/12/12(土) 23:32:54.53ID:obc9b6E9
まあrust使ってれば完全に安全とか言い出す馬鹿もいたしどこにでも馬鹿はおるわ。
2020/12/13(日) 02:17:41.84ID:1g8P/X2h
rustでRSSリーダー作れましゅか?
2020/12/14(月) 12:25:27.59ID:6iyAwzKw
色々調べて学んでみたが個人的にはRustは好きな言語ではないし
本の帯に書かれているようなC/C++の代替になるようなものではない。
メモリー安全なのはポインタが理解できない人向け。
Ruby/Puthon/JSのようなスクリプト言語的な使い方ならある程度できそうだが
それらより遙かに難しくなっている側面が有ることも否めない。
C/C++のように自由にデータ構造を作るには向いていない。
C#やJavaは速度は落ちるが、C/C++のコードを容易に移植できたが
Rustは出来ない。
2020/12/14(月) 12:30:01.03ID:6iyAwzKw
>>384
C#やJavaは、データ構造やアルゴリズムを自由に作りやすいC/C++の自由さを
速度やメモリー効率を落とすことで初心者やポインタが理解できない人でも
手に入れることが出来る言語であった。
RustはC/C++と比べて効率は落ちにくいが C/C++の自由さは手に入らない。
ポインタを良く理解している人であってもRustのsafeモードでは独自の
データ構造やアルゴリズムを作るのは非常に難解。
なぜならライフタイムやBox<T>などの仕様が明言されて無く不明確だから。
2020/12/14(月) 13:20:59.79ID:P41Kk9Hq
>>384 6iyAwzKw
>>385 6iyAwzKw
せっかく関心しかけたのに、自演で信頼性を損なうな
2020/12/14(月) 13:30:32.20ID:B3PAtuba
いつもの人だし関心するような内容あったか?
2020/12/14(月) 13:39:47.48ID:P41Kk9Hq
すまんな、rustスレ初めて覗いたんだ
2020/12/14(月) 14:39:07.69ID:GNvWdWeF
>>388
いや、実際に関心する内容があったんならそれはそれでいいんだが
あと別に自演失敗したとかじゃなく、Twitter的な感じでリプライで補足しただけでは
別人を装う気は微塵も感じられない
2020/12/14(月) 14:40:42.59ID:olJ8vT42
この人ほんとゴミやな
Rustは優秀な老害フィルターかもしれん
2020/12/14(月) 15:05:11.25ID:GNvWdWeF
嫌いなものを無理に使う必要ないんだが、それを何度も何度も言いに来られてもな
説明しても聞く気ないし
2020/12/14(月) 15:39:33.85ID:SRefut4W
仕様が公開されていないおじさん
2020/12/14(月) 16:56:39.26ID:XcunzViE
数学的に正しい仕様が公開されてないおじさん
2020/12/15(火) 09:41:38.47ID:uMItmhUb
老害に失礼だろ(笑)
2020/12/15(火) 09:52:45.57ID:ndUamRAR
具体的に何ができないか言ってくれないとただのお気持ち表明でしかない
2020/12/15(火) 16:41:25.69ID:DgOkpJ7c
リングバッファ実装でさえunsafe使わなきゃ無理だろ。
2020/12/15(火) 18:07:45.20ID:08XnxdOZ
リングバッファにunsafe必須とか正気か?
何も分かってないだけじゃん
2020/12/15(火) 18:38:51.06ID:cTRY0FQu
仮に unsafe 必須だとしてそれがどうだっていうんだ?
2020/12/15(火) 19:50:18.09ID:DgOkpJ7c
なるほどunsafeでもかまわんと。。まあそれでいいならそれでいいんじゃないですかね。
rustの旨味半減もいいとこだが。
https://github.com/rust-lang/rust/blob/master/library/core/src/alloc/mod.rs
2020/12/15(火) 20:31:28.92ID:ndUamRAR
Vec使ったsafeな実装もできるだろうし、
パフォーマンスを求めるなら直接allocのAPIを叩くunsafeの実装もできる

dogmaticにならず目的に応じて適切な手段を使い分けられるというRustの良いところの例だと思うが
なんでunsafe使ったら負けみたいな思考になるのかが分からない
2020/12/15(火) 20:32:49.79ID:WLyCzOT+
むしろ libc crateだけで作ればいいんじゃないか
2020/12/15(火) 21:30:40.05ID:+RD1gPFt
unsafe使ったリングバッファで数学的に完全に安全てw
自分の書いたロジックをコンパイラが検証してくれないって話だったのかよ
2020/12/15(火) 21:56:57.57ID:/27NEAtR
safeとunsafeを混ぜられるところはまさにRustの旨味そのものなんだが
2020/12/16(水) 01:59:42.07ID:yml2nxMy
そこまでしてRust使うならC++で十分。
2020/12/16(水) 07:41:21.74ID:L6k9APCP
>>404
unsafeじゃない実装もできるいうてますやん
2020/12/16(水) 11:49:20.44ID:tsGP+5/P
全部unsafeで常に安全性に気を使わなければならないC++
一部のunsafeな箇所の安全性にさえ気をつければ、大部分のsafeな箇所はコンパイラに従うだけで安全になるRust

C++の方が楽と感じるのはなぜ?使い慣れているから?コンパイラに叱られないから?
2020/12/16(水) 12:51:22.00ID:N/7dwjAk
数学的にというがそれはどうせ高校までの数学でしょ?
大学で教わった群論や離散数学を含んでるのか?
2020/12/16(水) 12:57:08.01ID:XkwPQibg
数学的に安全というのはCoq使って検証したとか
言ってもらわないとなあ
2020/12/16(水) 13:02:30.37ID:2c+prgNQ
一気に議論がチープになった
「数学的」でNG推奨
2020/12/16(水) 13:56:32.92ID:zVHRhpaQ
RustBeltやRustHornみたいな取り組みに期待したい
2020/12/16(水) 14:07:09.63ID:tsGP+5/P
miriってどうなの?
2020/12/16(水) 14:47:33.79ID:zVHRhpaQ
miriは普通に使えるんじゃない?
といっても実行パスでUB踏んでないか見るだけだから
RustBeltみたいな証明とは違うけど
2020/12/16(水) 16:16:13.30ID:qBZDuvPr
>>409
お前それ数学的に証明できんの?
2020/12/16(水) 18:05:54.84ID:QJd1nMyw
>>406
はっきりいえば、頭がいいから。
学生時代、ほとんど数学は満点だった。
2020/12/16(水) 18:20:40.19ID:YefQ566E
>>414
私は馬鹿だから、あなたがとってもうらやましいですね…
2020/12/16(水) 18:22:19.17ID:tsGP+5/P
>>414
C++の言語仕様完全に理解してそう。すごい
2020/12/17(木) 00:47:25.43ID:X4tT/GwL
>>406
普通にc++使ってれば安全性に気を使わなきゃならん部分は一部だとわかるし、
それがどういう部分かと言えばrustがunsafeで書かなきゃならん部分だからだよ。
2020/12/17(木) 15:00:55.83ID:dPcuBcMK
>>417
それでもミスるのが人間。そういった経験からシステム的にミスを無くそうと試みているのがrust。
それをわかった上で俺はミスしないって言ってるのはただの経験不足か、プログラムを全然組まないやつだな。
2020/12/17(木) 16:21:39.70ID:lSe9thVt
>>417
(とりあえず unsafe を使う必要がないようなコードで)
Rust を使って最初からエラーなしで通すことが出来るんか?
それでどこかで引っかかるようなら C++ でもたぶん出来てないぞ。
2020/12/17(木) 17:13:31.93ID:lDGBWs83
触れるなよもう……
421デフォルトの名無しさん
垢版 |
2020/12/17(木) 17:54:41.43ID:Lgh9khpQ
cd ~/.cargo/registry/index/github.com-1ecc6299db9ec823
git pull https://github.com/rust-lang/crates.io-index.git
422デフォルトの名無しさん
垢版 |
2020/12/17(木) 19:07:39.53ID:mqVedE2Y
D言語はどうなったんや?
423デフォルトの名無しさん
垢版 |
2020/12/17(木) 19:08:57.68ID:h5oPvIGR
まだ生きてんだw
2020/12/17(木) 19:35:09.90ID:zyd/WMbf
D言語のリファレンスって平易な英語で書かれていて、自分でドキュメントを書く時にすごく参考になる
2020/12/18(金) 03:45:53.54ID:WanfFh5H
>>418
俺は高IQで、数学が得意だったので、C++で何10万行のプログラムを書いても、
経験的にメモリ関連のバグが起きる確率はとても低い。
一般プログラマには当てはまらないかも知れないが。
2020/12/18(金) 04:06:31.91ID:4UaQE5Dn
経験的ねぇw
数学得意な奴が使いそうな言葉だねw
2020/12/18(金) 04:42:51.11ID:vRuKil8l
>>425
メモリ関連のバグは「確率が低い」では全然だめですよ、バグを作ってしまうことは仕方ないにしても、最初から根絶を目指さなくてはいけないかと
私なら、最低限 new/delete はオーバーロードしてラッパを書き 未 delete・重複 delete くらいは確認しておきますね
まあ、最近はお気楽に unique_ptr, shared_ptr で妥協することがほとんどですが、weak_ptr はちょっと怖くて使わないようにしています…
2020/12/18(金) 08:33:16.84ID:8E8ygoYj
>>425
あなたのプログラムでバグが起きる確率が低いことはどのように検証したのですか?
2020/12/18(金) 11:50:56.29ID:2oY35fJZ
経験的に、そうだからです
2020/12/18(金) 12:17:36.04ID:QLPAoxRE
そう、未だ気づかれていない大量のバグが潜んでいるのだった
2020/12/18(金) 15:39:43.38ID:WanfFh5H
みんな同じじゃないぞ。
頭にも才能があるのを忘れるな。
そうでないと高IQ者が活躍できない。
432デフォルトの名無しさん
垢版 |
2020/12/18(金) 15:43:18.03ID:WanfFh5H
>>427
QZは馬鹿。
2020/12/18(金) 15:54:37.91ID:ivKQNPRV
>>432
>>431
たしかに高IQの人の言ってはることがさっぱりわからなくて…
というか、高IQ だと私が思っていても実は、IQ=100 の人だったりして…
ということで、私のIQは80くらいだと思っています
2020/12/18(金) 15:56:33.29ID:WanfFh5H
>>433
普通、高IQといえば、IQ=140以上だろう。
2020/12/18(金) 16:25:31.81ID:D1qPLrji
IQ高いけどとても残念な人なんですね
2020/12/18(金) 16:45:14.29ID:e23FtnoV
>>434
メンサの方ですね、証拠をどうぞ
2020/12/18(金) 16:58:40.57ID:y5AIURZA
>>431
それでメモリ関連のバグの有無はどういう基準で判定してるんですか?
2020/12/18(金) 16:58:41.81ID:WanfFh5H
QZの方が最悪だ。
自分と自分の周りの価値観がすべてだと思っている。
平均の人々と秀才とはどこまで行っても違う。
言語の好みから何から何まで。
必要としていることも何もかも。
2020/12/18(金) 17:20:09.25ID:ivKQNPRV
>>438
>自分と自分の周りの価値観がすべてだと思っている。

私は私の持つ価値観以外にも、別の価値観やセンスオブバリューが存在し、かつ、私の持つ価値観よりも優れた価値観が存在し得ることも想定していますが、
私の発言の中に「自分と自分の周りの価値観がすべてだと思っている」とあなたに感じさせた部分がありましたら、是非ご指摘いただけるととても嬉しいです
2020/12/18(金) 17:46:11.20ID:OB9lVkoO
経験的に数学的に完全に安全
これが高IQ語法か
2020/12/18(金) 17:55:52.91ID:ivKQNPRV
>>440
それって変てこな語法ですよね
数学的に正しいのであれば、それは経験とか履歴とかヒストリーとかにまったく関係なく、
数学的に正しいと証明された時点で、現存宇宙のビッグバン以前、宇宙死以後にも、数学的に正しいのに

ど う し て 「 経 験 的 」 と い う 単 語 を 使 用 し て い る の で し ょ う か ?
442デフォルトの名無しさん
垢版 |
2020/12/18(金) 19:22:04.03ID:ZgVdoEAh
>>425
残念ながらお前の同僚や部下は違うんだ
2020/12/18(金) 19:41:43.87ID:0PDslekh
>>436
年内に会費払わなきゃいけないのを思い出した。ありがとう。
2020/12/18(金) 20:59:10.26ID:ivKQNPRV
>>436
メンサの人ってどんな人なんでしょう?
一度お会いしたいです
お話しするなかで、私のような馬鹿がもう少し生きやすくなるコツみたいなものが私にも感じられたら(多分理解は無理だと思います…)とても嬉しいですね
2020/12/18(金) 22:14:54.92ID:+Wrhvh6s
せっかくのRustスレなのにどうしてこんなカオスなスレになっちまったんだ…
2020/12/18(金) 22:29:37.14ID:y5YMvzUM
キチガイに構っても得るものはない
447デフォルトの名無しさん
垢版 |
2020/12/18(金) 22:30:30.78ID:tYOLON+r
unsafeの必要性がよくわかっていいじゃない
2020/12/18(金) 22:40:26.63ID:CFV0tuU9
専門板名物
2020/12/22(火) 13:40:54.01ID:n+6lDw0n
from_str を実装しようとしています。
入力となる文字列 (の一部) をスライスとして保持するようなデザインにしたいのですが、
ライフタイムの整合性を取れる書き方が出来ません。
FromStr はそういうことが出来ないように制約付けられたトレイトということなのでしょうか?
それとも工夫してどうにか出来るでしょうか?

やりたいことをコードで言えばこんな感じです。

use std::str::FromStr;

struct foo<'a>(&'a str);

impl<'a> FromStr for foo<'a> {
type Err = &'static str;
fn from_str(s: &'a str) -> std::result::Result<Self, Self::Err> {
Ok(foo(s))
}
}
2020/12/22(火) 15:57:10.65ID:RsVnnyiY
>>449
できない
2020/12/22(火) 16:08:49.13ID:I4oG7AXR
>>449
FromStrはライフタイムを持ってないので無理
https://doc.rust-lang.org/std/str/trait.FromStr.html
の2段落目を見るといいよ
2020/12/22(火) 16:33:15.01ID:n+6lDw0n
>>450-451
ありがとうございます。
設計を見直します。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況