Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。
http://www.rust-lang.org/
https://github.com/rust-lang/rust
Servo
https://servo.org/
https://github.com/servo/servo
◆前スレ
プログラミング言語 Rust 2
http://echo.2ch.net/test/read.cgi/tech/1478023960
プログラミング言語 Rust 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/05/21(日) 14:04:29.55ID:9L9dm7b/771デフォルトの名無しさん
2017/09/10(日) 16:53:04.07ID:6IGW1QFW >>770
木構造の一番いいサンプルおしえてよ
木構造の一番いいサンプルおしえてよ
772デフォルトの名無しさん
2017/09/10(日) 21:30:15.59ID:/y0BRE7n 木にせよ一般のグラフにせよライフタイム管理が面倒くさい
773デフォルトの名無しさん
2017/09/10(日) 22:30:44.85ID:/LC/x3j3774デフォルトの名無しさん
2017/09/11(月) 00:36:42.39ID:xCZu5AEB ぐええ、隣接リストとアリーナの違いがよく分からない
775デフォルトの名無しさん
2017/09/11(月) 06:43:38.80ID:Yii5jhjx 768はこれがまともじゃないっていいたかったんでしょ。
776デフォルトの名無しさん
2017/09/11(月) 10:26:55.85ID:XW0rQ7er CやC++ならポインタ持っておくだけで簡単に実現できるのに……
777デフォルトの名無しさん
2017/09/11(月) 23:14:03.66ID:0LGm7EQD C++使うか、unsafe使えば良いのでは
778デフォルトの名無しさん
2017/09/11(月) 23:14:47.15ID:0LGm7EQD Rc+RefCellな型を用意するだけでもマシになるか
779デフォルトの名無しさん
2017/09/12(火) 00:26:37.00ID:nVT3ZJzi ていうか練習ならともかく実際に使うプログラムでポインタをつないでグラフを表現することなんてそんなに頻繁にあるか?
取りうる表現の中で効率性が最悪な部類じゃん
Vecに対するLinkedListみたいなもんだろこれ
取りうる表現の中で効率性が最悪な部類じゃん
Vecに対するLinkedListみたいなもんだろこれ
780デフォルトの名無しさん
2017/09/12(火) 01:20:27.09ID:Tl3HhyXK オブジェクト指向っぽいAPIを触るときはだいたいその形にならない?
781デフォルトの名無しさん
2017/09/12(火) 03:08:23.10ID:CK+WAwk/ グラフの時だけ、ガベコレ使えるGc型が欲しい
782デフォルトの名無しさん
2017/09/12(火) 08:30:34.06ID:mcDW5eHR じゃああんたは現実世界でツリー構造のものをどうやって表すの?
783デフォルトの名無しさん
2017/09/12(火) 11:30:27.08ID:u82oOWPv >>779
VecじゃなくあえてLinkedList使う場面普通にあるんだが……
VecじゃなくあえてLinkedList使う場面普通にあるんだが……
784デフォルトの名無しさん
2017/09/12(火) 14:48:49.21ID:+kMyckKw linux の赤黒木の実装はポインタベースではあったな。
しかし個人的には配列実装のが結局速いって気はする。
しかし個人的には配列実装のが結局速いって気はする。
785デフォルトの名無しさん
2017/09/12(火) 15:07:56.52ID:yDRUgdvZ Effective Hogeでそういうことは言及されてるけど
Rustはどうだかなとドキュメント見たらSecond Editionで"Effective Rust"の節自体が削られとる:-(
Stack vs Heapはどこかに記述されてた覚えがあるから、ツリー/リスト操作もどこかに潜り込んでるのかなぁ
Rustはどうだかなとドキュメント見たらSecond Editionで"Effective Rust"の節自体が削られとる:-(
Stack vs Heapはどこかに記述されてた覚えがあるから、ツリー/リスト操作もどこかに潜り込んでるのかなぁ
786デフォルトの名無しさん
2017/09/12(火) 17:41:48.32ID:r07bb/MI 配列ベースの実装はポインタの代わりにindex使うだけだからできることはあんまり変わらんわな
配列の方がデータの局所性高そうで速そうではある
配列の方がデータの局所性高そうで速そうではある
787デフォルトの名無しさん
2017/09/12(火) 18:02:30.56ID:kvuESNKU データ構造によって速い操作が違うという基本的な概念がない奴おるな
788デフォルトの名無しさん
2017/09/12(火) 18:50:57.82ID:wPca0Ysf vectorのmutabilityの問題があるの理解できてる?
789デフォルトの名無しさん
2017/09/12(火) 18:53:28.85ID:O0/aVCto >>779
効率ってなんの効率?
効率ってなんの効率?
790デフォルトの名無しさん
2017/09/12(火) 22:05:08.25ID:RDvyqWgj >>787
まあそういう無能がありがたがる言語なんだろうなRust
まあそういう無能がありがたがる言語なんだろうなRust
791デフォルトの名無しさん
2017/09/12(火) 22:20:04.05ID:SHXpQI2F mutabilityはRefCell使えば良いのでは
Refcell使わずにVecの中身を直接触る必要ある?
Refcell使わずにVecの中身を直接触る必要ある?
792デフォルトの名無しさん
2017/09/12(火) 22:27:17.20ID:wPca0Ysf793デフォルトの名無しさん
2017/09/13(水) 14:03:19.87ID:K9O6G+Si 低レイヤーできます!ってアピールしたい言語なんだろうけれど、
あんま向いてない言語な気はする。
あんま向いてない言語な気はする。
794デフォルトの名無しさん
2017/09/13(水) 14:56:53.13ID:6DzbMbn9 低レイヤを書くにはチェッカーが強すぎて邪魔で、高レイヤを書くには全くカジュアルさがない
どっちにもなれない哀れな言語よ
どっちにもなれない哀れな言語よ
795デフォルトの名無しさん
2017/09/13(水) 18:10:30.60ID:dAYfacw9 並列で大規模で低レイヤーな領域に向いた言語だからどれか一つでも欠けてる領域で使いづらいと思うのは仕方ない
796デフォルトの名無しさん
2017/09/13(水) 20:06:39.58ID:fx0j+lzd 低レイヤーはやっぱC言語だな。
ポインタの習得が難しい事以外に欠点ないじゃんこの言語。
Rustはもっとポインタ扱いやすくして出直してきな。
ポインタの習得が難しい事以外に欠点ないじゃんこの言語。
Rustはもっとポインタ扱いやすくして出直してきな。
797デフォルトの名無しさん
2017/09/13(水) 20:42:07.11ID:SU8+D2f1 rustの並列処理って言うほど特化(最適化)されてる気はしないけどな・・・
スレッド跨いだオブジェクトの所有権譲渡も保障されてはいるけど、従来言語/ライブラリに比べてめっちゃ便利という感じはしない
futures-awaitとかyieldを使うと変わるのかねぇ、無くても困りはしないしと使ってないけどfutures-awaitは使ってみるかな
スレッド跨いだオブジェクトの所有権譲渡も保障されてはいるけど、従来言語/ライブラリに比べてめっちゃ便利という感じはしない
futures-awaitとかyieldを使うと変わるのかねぇ、無くても困りはしないしと使ってないけどfutures-awaitは使ってみるかな
798デフォルトの名無しさん
2017/09/13(水) 20:42:42.41ID:K9O6G+Si C だっていろいろ批判はあるだろ。
型がゆるいとか、名前空間がグローバルしかないとか。
まあそれを差し引いてもやっぱ有効な言語と思うけど。
型がゆるいとか、名前空間がグローバルしかないとか。
まあそれを差し引いてもやっぱ有効な言語と思うけど。
799デフォルトの名無しさん
2017/09/13(水) 20:49:43.29ID:6DzbMbn9800デフォルトの名無しさん
2017/09/13(水) 20:52:03.57ID:SU8+D2f1 とか思ってたら、yieldの方が公式nightlyにマージされたのか
futures-awaitもnightly要求するし素直にyieldの方を使ってみよ, stableにはいつ来るのかなぁ
futures-awaitもnightly要求するし素直にyieldの方を使ってみよ, stableにはいつ来るのかなぁ
801デフォルトの名無しさん
2017/09/13(水) 21:19:48.43ID:KPH4Bf/5 今さら C はねえよ
802デフォルトの名無しさん
2017/09/13(水) 21:41:03.71ID:6DzbMbn9 >>801
Rustよりはあるわ
Rustよりはあるわ
803デフォルトの名無しさん
2017/09/13(水) 21:54:04.29ID:8Q7unwrY ID:6DzbMbn9っていつものモジラ/Rustネガキャン君だろ
804デフォルトの名無しさん
2017/09/13(水) 21:57:53.87ID:6DzbMbn9 >>803
さすがにあのレベルの基地と一緒にされるのは心外
さすがにあのレベルの基地と一緒にされるのは心外
805デフォルトの名無しさん
2017/09/13(水) 22:09:43.33ID:8Q7unwrY いつものコンパイル通らなくて発狂してる基地外かと思ったわ
806デフォルトの名無しさん
2017/09/13(水) 22:45:06.07ID:EXyWFNJX コンパイラーよりも自分が信用できるならC使えばよいと思う
807デフォルトの名無しさん
2017/09/13(水) 23:56:44.36ID:kEFpToCL Rustのコンパイルが通るならCを使えば良い君まだいたのか
自分の言葉通りRustに拘わらずにCを使っていれば良いのに
自分の言葉通りRustに拘わらずにCを使っていれば良いのに
808デフォルトの名無しさん
2017/09/14(木) 08:18:50.41ID:Y4hD7kDo macro_rules! make_macro {
($id:ident) => (
macro_rules! concat_idents!{test_, $id} {
}
);
}
make_macro!{foo}
こういうの無理なのか。
($id:ident) => (
macro_rules! concat_idents!{test_, $id} {
}
);
}
make_macro!{foo}
こういうの無理なのか。
809デフォルトの名無しさん
2017/09/14(木) 11:10:13.14ID:EE2xE751 EmacsでRLS使ってる人居る?
810デフォルトの名無しさん
2017/09/14(木) 11:12:19.23ID:XJ7zDnIx >>799
そういう根性論嫌い
そういう根性論嫌い
811デフォルトの名無しさん
2017/09/14(木) 12:55:00.43ID:NnJxH7VV RustやSwiftとかの次世代言語ってOracle製品やSAPみたいな所あるよな。
無駄に抽象化して変な専門用語作って、プリミティブなエンジニアを寄せ付けない感じとか。
コマンドラインで一発で出来るようなことを、独自用語だらけのGUIでポチポチ操作させてんの。
こういう文化は本当に良くない。優秀なエンジニアはみんな逃げてしまう。
無駄に抽象化して変な専門用語作って、プリミティブなエンジニアを寄せ付けない感じとか。
コマンドラインで一発で出来るようなことを、独自用語だらけのGUIでポチポチ操作させてんの。
こういう文化は本当に良くない。優秀なエンジニアはみんな逃げてしまう。
812デフォルトの名無しさん
2017/09/14(木) 13:54:06.68ID:1DVuzpHn813デフォルトの名無しさん
2017/09/14(木) 17:19:47.64ID:n0wq55dM 人間が気をつけてコードを書けばバグが出ないはずというのは根性論では
814デフォルトの名無しさん
2017/09/14(木) 18:36:21.42ID:DdS4QLGS 人に依存するC/C++は日本的
システムが面倒を見てくれるRustはアメリカ的
システムが面倒を見てくれるRustはアメリカ的
815デフォルトの名無しさん
2017/09/14(木) 19:05:26.17ID:1DVuzpHn バグが出ないことよりも手法に熱中しちゃう方が日本的だなとか思っちゃうけど。
816デフォルトの名無しさん
2017/09/14(木) 19:14:58.28ID:NxItWvHk 形容詞化する国名
817デフォルトの名無しさん
2017/09/14(木) 20:08:31.29ID:wsl9UgI1 〜的ってつければなんだって形容詞になるの?
人に依存するC/C++はC/C++的
システムが面倒を見てくれるRustはRust的
人に依存するC/C++はC/C++的
システムが面倒を見てくれるRustはRust的
818デフォルトの名無しさん
2017/09/14(木) 21:28:39.91ID:ekPhWBa7 C/C++でもバグが出ないほど規模が小さい or 言語への習熟度が高いならC/C++使えばよいし
そうじゃないならRust使えば良いとしか言ってないのだが
そうじゃないならRust使えば良いとしか言ってないのだが
819デフォルトの名無しさん
2017/09/14(木) 21:51:38.65ID:egb+Ths/ 単純に「巡回グラフを始めとした自己再帰型のデータ構造を書き下せない(コンパイラが通してくれない)」って時点で、書けないプログラムの存在を認めてしまってるんだよなRustは
その上C言語にはValgrindやらcppcheckやら、金かかっていいならCoverityやら、いくらでもその手のツールはあるわけで、
Rustならではの点ってどこにもない割に欠点だけ目立つ訳よ
肝心の抽象化も機能足りてないしな。Nightly使えばなんぼかマシだが
その上C言語にはValgrindやらcppcheckやら、金かかっていいならCoverityやら、いくらでもその手のツールはあるわけで、
Rustならではの点ってどこにもない割に欠点だけ目立つ訳よ
肝心の抽象化も機能足りてないしな。Nightly使えばなんぼかマシだが
820デフォルトの名無しさん
2017/09/15(金) 00:12:38.69ID:znUIhbu+ どうしても全部Rustだけで実装したいのか
821デフォルトの名無しさん
2017/09/15(金) 00:29:00.00ID:tkwXjMs/ △全部Rustだけ
◯全部safe Rustだけ
Escape hatchの類は使いたくないというsafe Rust信仰の裏返しというツンデレなのでは
◯全部safe Rustだけ
Escape hatchの類は使いたくないというsafe Rust信仰の裏返しというツンデレなのでは
822デフォルトの名無しさん
2017/09/15(金) 01:05:02.21ID:QM7YGf64 How can I implement a graph or other data structure that contains cycles?
https://www.rust-lang.org/en-US/faq.html#how-can-i-implement-a-data-structure-that-contains-cycles
https://www.rust-lang.org/en-US/faq.html#how-can-i-implement-a-data-structure-that-contains-cycles
823デフォルトの名無しさん
2017/09/15(金) 13:00:11.59ID:3YdKOJD0 できるできないレベルの話をしているのか、やりやすいやりにくいレベルの話をしているのかどっち
824デフォルトの名無しさん
2017/09/15(金) 13:25:48.45ID:5eAkzQwm できない => できるよ => やりにくい => そうねー => 応答終了, 最初に戻る
こんなのをずっと繰り返してるイメージだ
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君の二人なのかな
二人とも長いこといるし、コンパイル通せないRustが相当憎いんだろうなぁと思ってる
こんなのをずっと繰り返してるイメージだ
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君の二人なのかな
二人とも長いこといるし、コンパイル通せないRustが相当憎いんだろうなぁと思ってる
825デフォルトの名無しさん
2017/09/15(金) 23:54:50.13ID:mfxKdXka Cだって肝になるところをアセンブリで書くのはまれによくあることだし、
Rustで書きにくいところをCで書いたっていいよな
Rustで書きにくいところをCで書いたっていいよな
826デフォルトの名無しさん
2017/09/16(土) 02:17:34.76ID:lHsVDIMy Rustのコンパイルが通るならCを使えば良い君は、暗黙のうちにCで完全なメモリ管理を行うことの困難さを訴えているんだよきっと
827デフォルトの名無しさん
2017/09/16(土) 06:49:34.00ID:bgl6NL4A 変な人がわくほどメジャーな言語になったんだなぁ
828デフォルトの名無しさん
2017/09/16(土) 12:21:42.89ID:CDKitgfC てか細かいとこ C で書いてあとは軽い言語から呼ぶとか普通してるじゃん。
一つの言語で無理やりやろうとするからどっちつかずになるんじゃないのかね。
一つの言語で無理やりやろうとするからどっちつかずになるんじゃないのかね。
829デフォルトの名無しさん
2017/09/16(土) 12:23:12.97ID:FR19qSmR >>828
RustがC(++)の後継目指してるとか言わなきゃこんなに言わんよ
RustがC(++)の後継目指してるとか言わなきゃこんなに言わんよ
830デフォルトの名無しさん
2017/09/16(土) 17:33:19.57ID:hyq1PMdM C(++)の座が奪われると危機感を感じて
「Rustのコンパイルが通るならCを使えば良い」と必死なのかw
置き換わるにはまだまだ先が長いから安心して自分の巣にお帰りに
「Rustのコンパイルが通るならCを使えば良い」と必死なのかw
置き換わるにはまだまだ先が長いから安心して自分の巣にお帰りに
831デフォルトの名無しさん
2017/09/16(土) 17:34:53.66ID:lHsVDIMy Rustのコンパイルが通るならCを使えば良い(自分はできるとは言っていない)
832デフォルトの名無しさん
2017/09/16(土) 20:08:37.91ID:OnGiRDkA 実際に使ってる人たちは本当にいつかRustがC(++)に置き換わると思ってるの?
833デフォルトの名無しさん
2017/09/17(日) 00:38:06.21ID:NXS5TlTy RustがC/C++の後継目指してるなんて公言してるのか
834デフォルトの名無しさん
2017/09/17(日) 09:53:24.02ID:2FAjS2AD 一応Goもc++の置き換えを想定した言語らしい。もっともgoogle社内の話だが
835デフォルトの名無しさん
2017/09/17(日) 12:44:11.46ID:7diltdBj >>830
×まだまだ先が長い ○先にモジカスが世界から消滅する
先が長いとか言ってる時点でモジカスのステマに荷担してると理解しろ
Rustがプログラミング言語を名乗ってるのはモジラが自由をお題目にしてるのと同じレベルの害悪だ
×まだまだ先が長い ○先にモジカスが世界から消滅する
先が長いとか言ってる時点でモジカスのステマに荷担してると理解しろ
Rustがプログラミング言語を名乗ってるのはモジラが自由をお題目にしてるのと同じレベルの害悪だ
836デフォルトの名無しさん
2017/09/17(日) 15:13:14.19ID:9f3JHXln 複数のResultのNGをXORでまとめて(途中match分岐入れず)処理するのてどうすればいい?
超極稀に失敗する変な返り値を格納しても副作用の無い処理の連なりをゴソっと捨てる方法
超極稀に失敗する変な返り値を格納しても副作用の無い処理の連なりをゴソっと捨てる方法
837デフォルトの名無しさん
2017/09/17(日) 16:26:31.76ID:IHBqIXQE >>833
少なくとも firefox の c/c++ 部分の書き換えを想定してるだろう。
まあ c/c++ と一口に言っても結構レイヤーは広いように思う。
てきとうなサーバープロセスなら確かに go は書きやすいよ。
rust にそういうエリアがあると思えんというところが問題の焦点じゃないかね。
少なくとも firefox の c/c++ 部分の書き換えを想定してるだろう。
まあ c/c++ と一口に言っても結構レイヤーは広いように思う。
てきとうなサーバープロセスなら確かに go は書きやすいよ。
rust にそういうエリアがあると思えんというところが問題の焦点じゃないかね。
838デフォルトの名無しさん
2017/09/17(日) 17:40:27.30ID:aqlfcEMy >>836
求めてるものかどうかわからんが、Iterator<Item=Result<t, E>>はcollectでResult<Vec<T> , E>などにできる
求めてるものかどうかわからんが、Iterator<Item=Result<t, E>>はcollectでResult<Vec<T> , E>などにできる
839デフォルトの名無しさん
2017/09/17(日) 19:45:22.12ID:0mVr+JRg 相当雑いけど>>838の実装例はこんな感じかな
ttps://play.rust-lang.org/?gist=c87421997c42f0dfa8aa6ecabbb7ba3b&version=stable
性能を突き詰めるならcollectしないでfilterの戻りをnextで回すべきだけど適当に
確か100万回くらい回したら数秒の差が出るくらいのはず
ttps://play.rust-lang.org/?gist=c87421997c42f0dfa8aa6ecabbb7ba3b&version=stable
性能を突き詰めるならcollectしないでfilterの戻りをnextで回すべきだけど適当に
確か100万回くらい回したら数秒の差が出るくらいのはず
840デフォルトの名無しさん
2017/09/17(日) 23:03:20.12ID:xQI4uTVr841デフォルトの名無しさん
2017/09/17(日) 23:17:40.08ID:tCD9jFlM >>839
https://play.rust-lang.org/?gist=4f2e38dd8570a14eb1801137a183e40d&version=stable
こういう途中Errがいたら戻り値もErr、全部OkならOk<colletion>な意図だった
https://play.rust-lang.org/?gist=4f2e38dd8570a14eb1801137a183e40d&version=stable
こういう途中Errがいたら戻り値もErr、全部OkならOk<colletion>な意図だった
842デフォルトの名無しさん
2017/09/17(日) 23:18:40.79ID:tCD9jFlM collectも#inlineついてるなら手でfor書くのと同じになりそうだけど遅くなるのか
ExactSizeIteratorとただのIteratorで違うとかならわかるんだが
ExactSizeIteratorとただのIteratorで違うとかならわかるんだが
843デフォルトの名無しさん
2017/09/17(日) 23:25:16.47ID:ks3Dkyyp OCamlだと普通なんで読みにくさを感じたことは無いなあ
むしろその変数はそこで終わりです、もう頭に入れとかなくても良いよってことだから脳にやさしいとまで感じる
むしろその変数はそこで終わりです、もう頭に入れとかなくても良いよってことだから脳にやさしいとまで感じる
844デフォルトの名無しさん
2017/09/18(月) 08:30:10.39ID:KEjrNeQk >>842
collectの関数コールは最適化されて消えるけど、collect内でVectorを作る分があるからな
メモリ確保して、要素をコピーしてって誤差程度だけどコストが乗っかる
filterまでだとFilterは作るけど要素のコピーはしてない感じだったから
他言語, 他ライブラリのfilterメソッドの戻りで配列/リストを作り直すIF/実装に比べて比較的早そうだと思った
collectの関数コールは最適化されて消えるけど、collect内でVectorを作る分があるからな
メモリ確保して、要素をコピーしてって誤差程度だけどコストが乗っかる
filterまでだとFilterは作るけど要素のコピーはしてない感じだったから
他言語, 他ライブラリのfilterメソッドの戻りで配列/リストを作り直すIF/実装に比べて比較的早そうだと思った
845デフォルトの名無しさん
2017/09/18(月) 11:26:55.19ID:/3RzmXHq なるほど、Vec作るコストという意味なら確かにcollectはコスト掛かるね
まとめて処理というのがIteratorの要素からなる配列などのデータ構造を作って何かすると理解していたけど、
そうでないならば
f.map(¦x¦ {do_something(); }).collect::<Result<Vec<()>, _>>()
とすれば作られるのはVec<()>で、要素サイズ0だからヒープからはメモリ割り当てられないはず
これやるぐらいならfor使った方が
まとめて処理というのがIteratorの要素からなる配列などのデータ構造を作って何かすると理解していたけど、
そうでないならば
f.map(¦x¦ {do_something(); }).collect::<Result<Vec<()>, _>>()
とすれば作られるのはVec<()>で、要素サイズ0だからヒープからはメモリ割り当てられないはず
これやるぐらいならfor使った方が
846デフォルトの名無しさん
2017/09/18(月) 14:28:43.98ID:nF8z8OFK 一方C言語ならそんな面倒なこと考えずにallocしてforでいい
学習コスト高くて性能も低い言語Rust
学習コスト高くて性能も低い言語Rust
847デフォルトの名無しさん
2017/09/18(月) 16:37:25.22ID:JVxZ+5NP alloc?
848デフォルトの名無しさん
2017/09/18(月) 17:16:35.57ID:nF8z8OFK >>847
mallocとcallocのことをまとめてallocって言うんだがまさかRust民そんなことも知らない?
mallocとcallocのことをまとめてallocって言うんだがまさかRust民そんなことも知らない?
849デフォルトの名無しさん
2017/09/18(月) 17:40:00.45ID:2cmO/IBQ 俺たち、ついさっきまでzero-allocationな実装方針について話してなかったっけ……?
850デフォルトの名無しさん
2017/09/18(月) 17:48:40.40ID:/3RzmXHq せんせーallocaはallocに含まれますか
851デフォルトの名無しさん
2017/09/18(月) 18:07:06.15ID:/S27bRBH 定義による
スタックから確保するものと
ヒープから確保するものを
どちらもallocと呼ぶなら含んでる
スタックから確保するものと
ヒープから確保するものを
どちらもallocと呼ぶなら含んでる
852デフォルトの名無しさん
2017/09/18(月) 18:11:47.24ID:iR2mDVT9853デフォルトの名無しさん
2017/09/18(月) 18:15:30.06ID:2aiOt6ta 基地外って同じ言葉を連呼するからNGし易くて助かる。
854デフォルトの名無しさん
2017/09/18(月) 19:17:59.90ID:ndBW2Q0n 要素サイズ0のVecはヒープからメモリ獲得しないと明言したはずなのですが
855デフォルトの名無しさん
2017/09/18(月) 19:24:02.49ID:JVxZ+5NP >>846の書くヒープアロケートするCコードはスタックアロケーションのみのRustコードより高性能なんだよきっと
856デフォルトの名無しさん
2017/09/18(月) 19:39:48.02ID:K4Qo/KNH857デフォルトの名無しさん
2017/09/18(月) 19:56:01.80ID:2cmO/IBQ858デフォルトの名無しさん
2017/09/19(火) 01:46:56.36ID:EmWEVfWy 話が明後日の方向に行ってるけど
>>844の主点はVecを作るコストではなくVecに要素コピーするコストの方だぞ
filterで除外した要素をcollect内でVecにせっせとコピーするからちょっち時間かかる
ちなみにC(++)でベタに実装するとこんな感じでリスト作成、要素コピーするからドングリの背比べ
std::list<char*> filter_collect(std::list<char*> v) {
std::list<char*> new_v;
for (auto i = v.begin(); i != v.end(); i++) {
if (*i != NULL) {
new_v.push_back(*i);
}
}
return new_v;
}
std::list<char*> v{"Hello", NULL, "World"};
auto new_v = filter_collect(v);
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君が
よりよいCコードを挙げてくれるのをちょっと待ってみようか, 流石にこれは汚すぎる
>>844の主点はVecを作るコストではなくVecに要素コピーするコストの方だぞ
filterで除外した要素をcollect内でVecにせっせとコピーするからちょっち時間かかる
ちなみにC(++)でベタに実装するとこんな感じでリスト作成、要素コピーするからドングリの背比べ
std::list<char*> filter_collect(std::list<char*> v) {
std::list<char*> new_v;
for (auto i = v.begin(); i != v.end(); i++) {
if (*i != NULL) {
new_v.push_back(*i);
}
}
return new_v;
}
std::list<char*> v{"Hello", NULL, "World"};
auto new_v = filter_collect(v);
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君が
よりよいCコードを挙げてくれるのをちょっと待ってみようか, 流石にこれは汚すぎる
859デフォルトの名無しさん
2017/09/19(火) 01:57:29.08ID:yqqf+3Rr (そもそもの>>836が何をしたいのかいまいち分かっていないなんて言えない)
860デフォルトの名無しさん
2017/09/19(火) 09:23:52.82ID:b711gf7K これをCというか
いやまあC++としても酷いが
いやまあC++としても酷いが
861デフォルトの名無しさん
2017/09/19(火) 09:49:54.63ID:EmWEVfWy (大丈夫、俺も分かってない...多分>>841さんの実装例が期待コードだったんだろうと匙投げた)
862デフォルトの名無しさん
2017/09/19(火) 11:20:24.23ID:yHWjYg1H 仕様分からないのに実装しようとするRustの文化すげー
863デフォルトの名無しさん
2017/09/19(火) 18:29:28.71ID:zYSzUAzu そういえばRustってそもそもまだ言語仕様がなかったっけな(RFCが通ってない)
そんな言語を良しとするモジカスとそのお友達
そんな言語を良しとするモジカスとそのお友達
864デフォルトの名無しさん
2017/09/20(水) 07:39:00.40ID:D+wOfrtb RubyやLua等も商用でも使われているけど公式な言語仕様って存在しなかった気がする
865デフォルトの名無しさん
2017/09/20(水) 08:58:49.24ID:q1jVsKYV RFCが通るとはどういう意味だろう
まさかIETFの話ではないだろうな
まさかIETFの話ではないだろうな
866デフォルトの名無しさん
2017/09/20(水) 17:20:54.79ID:8IyKZYzR867デフォルトの名無しさん
2017/09/20(水) 17:30:21.92ID:KkNJUG2l https://github.com/rust-lang/rfcs/blob/master/text/2113-dyn-trait-syntax.md
さすがにこのSyntaxはダサいぞ?
さすがにこのSyntaxはダサいぞ?
868デフォルトの名無しさん
2017/09/20(水) 18:24:29.42ID:8IyKZYzR どうせならいっそ新しいepochでbare Traitのシンタックスでimpl Traitのセマンティクスを表すように変えて欲しくもあるけれど、motivationでも言われている通り互換性の観点からしてまあ無理だわな
理念には同意できるけど、うーむ……ダサい
理念には同意できるけど、うーむ……ダサい
869デフォルトの名無しさん
2017/09/20(水) 18:24:58.43ID:SerGpeBo じゃあ討論してるIssueに行って、ダセェからこうしようぜって具体例を提案してこい
良さげだったら(y)押してやんよ
良さげだったら(y)押してやんよ
870デフォルトの名無しさん
2017/09/20(水) 18:39:23.24ID:Yecv0E+U■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- (´・ω・`)クリスマスが今年もやってくる~
- 関西住みのニューハーフ、彼氏が欲しくて泣く
- 千晴さん千晴さん
- 晃←コレの読み方wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- 俺も猫か犬と布団で寝たい
