プログラミング言語 Rust 4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/14(土) 17:38:14.04ID:uWD69LeP
Mozilla発のプログラミング言語「Rust」のスレです

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

前スレ
プログラミング言語 Rust 3
https://mevius.5ch.net/test/read.cgi/tech/1495343069/
637デフォルトの名無しさん
垢版 |
2018/01/11(木) 13:36:38.57ID:c+w22aA0
>>636
それってpythonについて文句言ってんの?それともRust?
それとも両方?
2018/01/11(木) 19:09:36.95ID:iS+zA8r5
>>630
日曜プログラマとかレッテル貼ってdisってみたけど、
実は自分の方がクソど素人だと>>633>>635にバラされた気分はどう?

流行りだからってドカタが無理してAIとか口出さない方が良かったね
2018/01/11(木) 19:11:41.94ID:EF30eMeR
>>637
Rust
Pythonについては同意見
2018/01/11(木) 23:02:05.67ID:b1xHFrgv
道具でしかないプログラミング言語ごときに何でそう愛憎うずまくレスが沸くんだぜ
2018/01/12(金) 00:01:22.91ID:v4YvA7k7
やっぱりマイナー負け組言語マニアは余裕がないから
簡単にムキになっちゃうんじゃね
2018/01/12(金) 00:16:17.30ID:8Bbkgawk
Rustが使える有能な言語だと思っている?お前がそう思うんならそうなんだろう お前ん中では

Rustが使えない糞な言語だと思っている?お前がそう思うんならそうなんだろう お前ん中では

お前がそう思うんならそうなんだろう お前ん中では
2018/01/12(金) 10:24:05.79ID:KQEkfNlJ
>>642
そういうお前のなかではどうなんだ?
2018/01/12(金) 15:03:45.10ID:yzgw2U0r
>>640
本当は電気ドリル使った方が楽なのに頑なにスコップ使わせたり、
逆にブルドーザーでやれというようなアホな現場があるのが
ITの世界だったりする。
まあそんなことが続けばその道具を嫌いになるのはわからんでもない。
2018/01/12(金) 16:29:33.21ID:/01TbNc2
>>644
わかる
そしてスコップやブルドーザーでも時間や犠牲を払いつつもやれてしまうのがITの世界
2018/01/12(金) 19:30:59.16ID:RuIpixvC
>>638
とりあえず、tensorflowのコードを見てないんだなって思った
GPUに投げる演算処理以外のステップ処理とか関数コールとか動的型変数の取り扱いとか
インタプリタ言語がコンパイル言語より遅い理由に挙げられるデメリットをガン無視かよぉ

>>639
IteratorやOption, Resultとか、ハマればC/C++で何行もかけて書いてた所が1行に収まって
短くて可読性高くて性能良いコードになるのはメリットだと思うんだけどなぁ
あとは、makeだのvalgrindだのgoogletestだの色々な3rd party toolを使わなくてもcargoで完結するのホント助かる
2018/01/12(金) 20:43:22.05ID:yzgw2U0r
>>646
3rdパーティツールを使ってないんじゃなくて、利用が簡易ってことだけどな。
そういう怪しげなこと書くくらいならモチっと使い方なり書いた方が普及には繋がると思うよ。

https://qiita.com/kubo39/items/cb84cd0ee89d257ce11e
2018/01/12(金) 20:52:57.80ID:/u+itip5
>>646
tensorflowはボトルネックになりそうな所はC++で書かれてるよ
想像でテキトーな事を書くなよ
2018/01/12(金) 21:01:05.95ID:/u+itip5
Pythonが科学技術分野で好まれてるのは
numpyやscipyのお陰だから言語に文句つけても意味ないし、
Rustで書くよりnumpyで行列演算した方が速いから
速度面でも移行するメリットがない
2018/01/12(金) 21:54:28.61ID:kjmG24Y8
>>644
ITに限らないような。低能率な環境や命令を棚に上げて生産性向上などと吠える製造業も多いぞ
651デフォルトの名無しさん
垢版 |
2018/01/13(土) 09:02:27.08ID:PRFVc3V3
>>650
未だに設計にEXCEL使ってる現場とか多いしね。
自称IT屋がIT使ってない。
2018/01/13(土) 19:22:01.99ID:MW2t1rKM
excelがITではないとは暴言では
2018/01/13(土) 19:34:17.26ID:aU8wc9zz
エクセルは芸術
654デフォルトの名無しさん
垢版 |
2018/01/13(土) 21:22:56.33ID:ZmH3DZ0F
>>652
ああ精確には「古いIT」だな。
客には「Excelで台帳管理しないでDBとWebアプリ使いましょう」とか提案する癖に、開発工程ではExcel使ってるという非効率さ。
2018/01/13(土) 21:38:44.30ID:V4m1sF41
Excelが悪いとは思わないけど処理の規模が一線を越えてくるとプログラムを書いた方が処理効率や保守性の面で有利になる
関数山盛りの激重スパゲッティワークシートを運用しているところは少なからずあるのでは
あとExcelに表計算ソフト以上の仕事をさせているところも結構あるな
2018/01/13(土) 21:43:49.20ID:aU8wc9zz
経済学の論文でエクセル使ってて、しかし普通にバグってて問題になってたことがあったな。
2018/01/14(日) 00:19:53.66ID:Qz3+ZXNT
rustスレだと思っていたがexcelスレだった
2018/01/14(日) 01:19:41.63ID:I9Kg/0Pm
>>654
規模がでかくなるとすぐ破綻するが
使い捨て作業でつかうぶんには超優秀

なにもまちがってない
2018/01/14(日) 03:40:45.43ID:ppap/O0M
まあ実際はエクセルとバージョン管理使ってりゃそれで十分なケースは多いけどね。
2018/01/14(日) 09:51:38.95ID:5kx72Xik
とある公的研究施設に嘱託で行ってたときの実話なんだが

・それエクセルでマクロ書いたら多少楽になるんじゃね?って提案
→わけのわからんことに時間使わないで今すぐ手を動かして紙で管理してね

・コピペ満載糞コード見せられ「なぜこれ関数書かないんですか?」とだけ質問
→関数使うと見難くなる、保守しにくくなる、関数は書かないでね

なお、必死で食い下がって関数書くことだけは許してもらった模様
公務員なんてのはPCの前に座って屁こいてるだけで時間が金になるから
みんなこんなもんよ
時間を惜しむと言う発想が無いか、少なくとも民間とは違う
2018/01/14(日) 11:24:43.60ID:pZVQT//+
rustなんて使ってるやつも同じメンタルだな
成果物出さないでコンパイラにエラーメッセージ出させてるだけで時間が金になるようなやつ
物作らなくていいなら理想の言語だわな
2018/01/14(日) 11:37:01.71ID:BkqToWZD
けんきゅうしせつのひとが嘱託よりすべてにおいて優れているのは自然の摂理なので
本当にわけのわからない提案をしたり
既存コードに手を突っ込んで意味不明なリファクタをしようとしたりしたんだろう

マクロ化したり関数作ったほうが本当に能率いいなら
許可なぞとらずに自分のところだけそれでさっさとやっちゃう
うまくいくようならあとから提案する
2018/01/14(日) 11:41:16.95ID:pZVQT//+
>>662
だーれがその「自分で勝手にやったところ」の面倒を見てくれるんだ?
嘱託ごときが定年まで面倒見れるわけもなかろうに
勝手にブラックボックス作るのは何様?
2018/01/14(日) 11:46:14.88ID:BkqToWZD
自分の責任範囲内の話だし
特にブラックボックスなところはないが
なにがきにいらんのだ
2018/01/14(日) 11:48:39.30ID:pZVQT//+
嘱託に設計を勝手に変えられる「責任」が存在するならそれは嘱託ではなくね?
自分が勝手にやった、自分一人しかわからないものは十分ブラックボックスだ
2018/01/14(日) 11:57:24.04ID:BkqToWZD
コーディングルールに関数作らないことって明記されてなかったら
べつにいいんじゃないか
2018/01/14(日) 12:26:12.32ID:ppap/O0M
いや関数ダメとか普通にどうかしてんだろ。。
これでブラックボックス化するからダメ言うんだったら何もできんわ。
668デフォルトの名無しさん
垢版 |
2018/01/14(日) 13:02:12.25ID:8svLfVJD
そもそもプログラミングってきちんと正しく
ブラックボックス化(カプセル化)しましょうってものだろうに。。。
2018/01/14(日) 13:39:57.15ID:pZVQT//+
カプセル化はAPIと内部状態の分離であって
中のコードや仕様を隠蔽するのが目的じゃないんだが
2018/01/14(日) 13:57:59.71ID:jzH2L7UL
ID:pZVQT//+ は何かズレてんな。だから必死なのか。
2018/01/14(日) 14:43:57.62ID:b6ZBN6zi
Rustに限らないが、新しい言語ごり押しする奴や
コーディング規約ガン無視してコード書いたりする奴は、
結局そいつしかメンテできない領域を産み出すだけで、全く生産性に寄与しない
ってことが言いたいだけだぞ
672デフォルトの名無しさん
垢版 |
2018/01/14(日) 14:45:29.84ID:8svLfVJD
>>669
その「APIと内部状態の分離」をなぜ行いたいのかきちんと考えたことはあるのか?
車を運転するのに車の仕組みを知らなくても良いのと同じように、
プログラム(ソフトウェア)を使うのにそのプログラムの仕組みを知らなくても済むようにするため。
さらに言うと、プログラマが他人が書いたAPIを使うのに、そのアルゴリズムを知らなくても済むようにするためだ。
結局のところ、カプセル化の目的は「きちんと正しく」ブラックボックス化を行うことで
利用者側が内部の仕組みを知らなくても使い方を知るだけで済むようにすることだ。
「APIと内部状態の分離」を行うのはそのための手段として最も有用なものの1つというだけに過ぎない。
何の目的もなく「APIと内部状態の分離」を行えば、それは「中のコードや仕様を隠蔽する」のと大して変わらないよ。
もう少し本質をしっかりと考えよう。
君の言ってること自体は必ずしも間違っているわけではないし、言わんとしていることも分からんではないが、
なんというか、、、底が浅いと感じてしまう。
673デフォルトの名無しさん
垢版 |
2018/01/14(日) 14:56:16.89ID:8svLfVJD
一応補足。
かといってカプセル化した中身は汚くてもいいと言ってるわけじゃないよ。
大多数の人間はカプセル化した中のコードを読む必要性はないけど、
プログラムにバグがないことは絶対に保証できないのだし、
パフォーマンスの改善やらその他いろいろな理由で、
一部の他人は必ず中身のコードを読むことになるからね。
2018/01/14(日) 14:56:20.26ID:ptHdDqnU
>>663 勝手にブラックボックスを作るべきではない
>>664 ブラックボックスなどないではないか
>>668 プログラミングとはそういうものだ

>>663への反論として>>664はわかるが>>668はなんかずれてると思うがな。
675デフォルトの名無しさん
垢版 |
2018/01/14(日) 15:03:52.23ID:8svLfVJD
>>674
「そもそも論」の話をしたからな。
ずれてるというか議論のすり替えが起こってるな。
悪かった。申し訳ない。
2018/01/14(日) 17:34:15.38ID:BkqToWZD
どうなんだろう
人と違うことやるときは
特に何も決まってなくても提案として言ったほうがいいの?
2018/01/14(日) 19:43:43.81ID:5kx72Xik
rustに関係ない話持ち込んじゃってゴメンね…
「関数書くな」って真顔で言われたときのショックを伝えたかったの
Cから入った人間だから「プログラムを書く≒関数を書く」
だとどこか思い込んでたようなとこがあったのかなぁ
軽くパニックになったわ
関数書かないで何を書くんだろう…って
関数を書かないレベルの人に言葉を尽くすのは大変だったYO
2018/01/15(月) 01:12:06.90ID:TeZ6A4z4
昔俺が入ったプロジェクトはJavaだったけど、1クラス1スタティックメソッドのみっていう縛りがあったよ
2018/01/15(月) 10:25:31.75ID:C2H3bXQJ
嘱託の契約次第だろ。
まあ、無駄な時間を使わされるようだったら契約違反を盾に交渉するのは正しい。契約外だったら少なくとも追加費用を要求しないとな。
2018/01/15(月) 12:02:33.62ID:Sawl3Tst
嘱託の人間に「こっちの方がいいから」って理由で
そいつにしかわからないプログラム書かれた側から言わせてもらうとまじでやめろ

お前がどんなにクソだと思おうと言われたようにやれ
嘱託のお前にとっては書いたらおさらばでいいんだろうが、こっちはそれを半永久的にメンテするんだぞ
こっちの形式指定はメンテするためにこっちが必要な条件なんだ
2018/01/15(月) 12:05:18.28ID:Sawl3Tst
だから「新しい言語のRust使います」だの「ナウでヤングなライブラリ使います」だの「イケてるツールのwebpack使います」だのは
お前がお前のために書くプログラムでやれ
嘱託先に納品する物で書くな。それはお前の物ではない
2018/01/15(月) 12:09:10.97ID:Sawl3Tst
関数切るなって指示も、メンテナンス性考えたら自然とそうなるところもあるだろう
例えばコード上あっちこっち飛ばれたら追えなくなるメンテナもいるんだ
そういう人にもメンテナンス業務させるためにそういう指定になるのは自然なこと

さすがにうちではないけども、そんな奴を抱えてるSIer上流も当然あるだろう
2018/01/15(月) 12:11:40.00ID:9C6ITO5u
人生楽しくなさそうだね
2018/01/15(月) 12:31:52.75ID:Cin8FKvr
逆にどんどん使ってくれというところもあるし場所によるとしか
どちらのケースが多いかは知らない
685デフォルトの名無しさん
垢版 |
2018/01/15(月) 13:32:29.94ID:w3dU/zjB
>>680, >>681, >>682
まぁ、正しいこと言ってるとは思うよ。
納品物に使う言語とかを独断(個人の趣味)で決める奴は確かにバカだと思う。
でも、関数使うんじゃないって強制する側も大概だからな。
従うのが社会的に正しいってだけで、情報工学的には明らかにおかしいこともまた事実。
それと、全部従っておけばいいってのもどうかと思う。
おかしいと思うのなら時間をかけて説得するのも一つの手。
話が極端すぎるんだよ。
2018/01/15(月) 13:55:34.30ID:plpGsHa9
人間、数回の経験ですべてがそうであると錯覚しやすいからねー
特に失敗は記憶に残りやすい(将来に活かせるとは言ってない)
687デフォルトの名無しさん
垢版 |
2018/01/15(月) 14:29:56.48ID:w3dU/zjB
ところで全く話変わるんだけど。
最近Rustの勉強をしてるんだけど、まだ慣れないし、C++もあまりやってこなかったので、
俺のバカな頭じゃ理解できないことがいっぱいあるから誰か教えて。

質問1
Rustってimmutable参照は複数持てるけど、mutable参照は1つしか持てない決まりになってるよね。
それってたぶんマルチスレッドのことを考えてそうなってるんだよね?(この時点ですでに勘違いしてる?)
けどRustではSyncトレイトとSendトレイトを実装してない限り、スレッド間で変数の受け渡しできないんだよね?
これって逆に言えばSyncとSendを実装してない場合はシングルスレッドなんだからmutable参照が複数あっても問題ないんじゃないの?
なんでマルチスレッドを全く使わないコードを書いてる時でもmutable参照は1つだけしか使えないの?
SyncトレイトとSendトレイトについてなんか勘違いしてる?

質問2
Rustで木構造やグラフ構造を定義する時に循環参照(子が親の参照を持ちたいとか)する時って、たぶんRcとWeakを使うことになるよね?
そして木構造を可変にしたいときはさらにRc<RefCell<T>>って形になるよね?
このRefCell使うとボローチェッカの制約をコンパイルエラーじゃなくて実行時にパニックするように変わるんだよね?
こうするしかないのはRc<RefCell<T>>使わずに木構造を作ろうとして執行錯誤したけど無理だったからそうするしかないんだなと思って納得したんだけど、
RefCell使っちゃうとボローチェッカが効かなくなるからせっかくRustを使ってるメリットが無くなったような気がしてくるんだよね。
それでもRustを使うメリットって何?
RefCell使ってるとこ以外はボローチェッカが効くんだからunsafeコードと同じようにラッパーで包んでやれば上位層に悪影響は出ないよねってこと?
それともC++とかで同じように木構造を作ると、Rustだと単純にパニックするだけだけど、C++だとデバッグがメチャクチャ困難なバグになったりするの?
たとえRefCellを使っていたとしてもRustを使うメリットはしっかりあるんだって思える明確な理由を誰か教えて。

この言語やってるともしかして俺ってすっげーバカなの?って不安になってくる。
長文すいませんが、誰か教えてください。
2018/01/15(月) 14:49:21.64ID:RpZewdhM
Rustなんて使った時点で騙されてる
その辺は言語設計が破綻してる証拠
悪いこと言わんからC++きちんと勉強してRustは忘れよう
689デフォルトの名無しさん
垢版 |
2018/01/15(月) 15:28:44.95ID:w3dU/zjB
>>688
君ははた迷惑な例のアンチかな?
破綻している証拠とやらをその辺はとか適当な言葉で誤魔化してる時点で説得力がないよ。
てか、君には聞いていない。君以外に聞いてるんだ。
2018/01/15(月) 16:35:55.57ID:tRnPToa/
木構造にRcは要らんだろ
各ノードは直接の親にしか所有されないんだから
2018/01/15(月) 17:21:29.47ID:pZIK1LNL
質問1について分かりやすいのがforループだな
あるベクタをforループ中に、forの対象にしてるベクタそのものにpushするみたいな黒魔術操作を禁止するために
forループを回してる間は回す対象の配列にイミュータブル参照を作ってる状態にしてコンパイラにチェックさせる
2018/01/15(月) 17:44:57.62ID:prlexpko
質問1がそうなっている理由は、以下のようなケースで解放済みのVecにアクセスしてしまうことを防ぐというのもある
let mut foo = Some(vec![]);
let foo_mut = &mut foo;
let foo_ref = foo.as_ref().unwrap();
foo_mut = None;
println!("{:?}", foo_ref); // drop 済みのVecへのアクセス
2018/01/15(月) 19:10:45.82ID:pZIK1LNL
重箱の隅だが四行目は
*foo_mut = None
だな
694デフォルトの名無しさん
垢版 |
2018/01/15(月) 20:48:46.10ID:w3dU/zjB
>>691, >>692
なるほど。mutable参照が1つしか取れない理由はマルチスレッド以外にも理由があったのか。
単純なコードだけど実際に示されないと気が付けないな。(少なくとも俺は)
やっぱりGC無しの言語はメモリ管理が難しいな。
そして、それをコンパイラがはじいてくれるのはやっぱり有難い。
納得のいく答えが得られた。教えてくれてありがとう。

>>690
それは木構造でも親から子を辿るだけで済む場合に限定されない?子から親を辿りたくなった場合だと無理じゃない?
子は複数いるんだからそれぞれの子が全て親のmutable参照を持つことはできないよね。
だって、mutable参照は1つしか作れないんだから。
そうするとRcとWeakとRefCellを使わざるを得なくなるよね?ならない?使わなくても済む方法があるの?
ちなみにRcじゃなくてArenaっていう仕組みを使うって方法ならどっかのブログで見たんだけど、
その方法だと動的に追加していくことは出来るけど、動的に削除を行うことは出来ないよね。
例えばJavaScriptのDomツリーとかはparentNodeで子から親のNodeを辿れるようになってるし、
appendChildとかremoveChildとかでNodeを動的に追加したり削除したりももちろん出来るよね。
それと同じようなことをRustでもしたかったらRcとWeakとRefCellを使うしかないんじゃないかと思ってるんだけど。
2018/01/15(月) 20:53:28.00ID:Cin8FKvr
双方向参照する場合はそう

RefCell使わなければならないケースでrustの方がうれしいのは、
実行時にはなってしまうが&mutのエイリアスがチェックされることかな
C++だと領域破壊してもそれらしく動いてしまうとかあり得てバグの発見が遅れる
2018/01/16(火) 05:17:55.44ID:4jams3dQ
Rustで木を作ったぞ!

https://play.rust-lang.org/?gist=dc4c67944190cb7ab83b2e25e4fdd4e2&;version=stable
2018/01/16(火) 12:11:08.60ID:JwS671kg
https://news.mynavi.jp/article/20180110-568199/
モジラ工作員ざまあ!!!wwwww
いやー一年は工作でごまかせたかもしれないがさすがにメッキが剥げてきたね!
これが現実!!
騙されてるやつはまだ間に合うぞ!
2018/01/16(火) 12:21:19.07ID:Tvp4qB7j
>>697 ……
https://qiita.com/kmizu/items/b07f1dcad63f104248c5
2018/01/16(火) 13:02:13.48ID:JwS671kg
>>698
どや顔で貼ったんだろうけど
記事内でリンクあるランキングでのRustの位置wwwwwwwwwwww
Rustのゴミさの補強にしかなってないwwwwww
2018/01/16(火) 13:03:09.51ID:InRpqwJl
>>698
そいつはTIOBE IndexでScalaの順位が低いから
参考にならないの事にしたいだけのScala大好きマンだから
話半分以下で聞いとけ
701デフォルトの名無しさん
垢版 |
2018/01/16(火) 13:18:52.31ID:4ikneXPL
そもそも、みんなが使ってる言語だから良い言語みたいな理論を持ち出せば、
PHPをとても良い言語だと認識しければならなくなるんだが。
その辺を>>697はどう考えてるんだ?たぶん何も考えてないんだろうけど。
それとも、もしかしてPHP最高!とか思ってる奴だったか。
2018/01/16(火) 13:31:11.79ID:JwS671kg
>>701
Rustは誰も見向きもしないクソ言語未満っていってるだけで
みんなが使ってる言語は良い言語とは一言もいってないけど?
703デフォルトの名無しさん
垢版 |
2018/01/16(火) 13:37:29.94ID:4ikneXPL
だれも見向きもしない言語ってのはつまり人気のない言語のことだろ。
人気のない言語はクソ言語ってことにすると、逆説的に、
人気のある言語は良い言語になっちゃうよね。
2018/01/16(火) 13:39:54.74ID:JwS671kg
論理学できない人?

見向きもされないのは悪い言語 が真でも
見向きされる言語は良い言語 は真じゃないよ?
論理学できないからRustなんてもてはやすんだろうけど
2018/01/16(火) 13:50:01.38ID:0jSYVjYj
その理屈は論理学として正しいがそれを認めると
順位表では何が良い言語か一生懸命みてもわからんから意味なさそう
706デフォルトの名無しさん
垢版 |
2018/01/16(火) 14:05:58.36ID:4ikneXPL
>>704
それは悪かった。
どうせ君は物事を1か0でしか考えられない人間だと思ってたから、
そういう思考回路の人間だと思って会話を進めようとしてしまった。

じゃあ、別の方向から突かせてもらうけど、
関数型言語って最近(最近というほどでもないか?)の流行りじゃん?
でも、関数型言語の祖先ってLispとか言われてたりするよね。
で、そのLispはかなり昔から存在したわけだよね。
何で昔は一部の物好きだけが使ってて他は見向きもしなかったのに、
今更になって認められていろんな言語にラムダ式とかが採用されたの?
見向きもされない言語はクソ言語のはずなのになんで?
(ちなみにこの理論は反論できる余地があります)
2018/01/16(火) 14:40:03.83ID:JwS671kg
Lispが関数型言語の祖先かと言われると副作用だらけだし違和感しかないな
別に最近の言語のラムダ式はラムダ計算を構文に持ち込んだだけで、LispのS式まわりの成果を持ち込んだわけでもなかろうに
どちらかというとHaskellとかML系列の成果の方が主だろう

RustがLisp的な立ち位置になると言いたいんだろうが、言語のお粗末な出来から言ってもそれはない
708デフォルトの名無しさん
垢版 |
2018/01/16(火) 14:45:36.44ID:4ikneXPL
別にLispに限定した話じゃないよ。
関数型言語って昔からあるよね。でも当時は誰も見向きもしなかったよね。
見向きもされない言語がクソ言語なら関数型言語が
今更になって認められるのはおかしいよね?ってだけ。
2018/01/16(火) 16:31:38.96ID:bxI2XEx+
言語が変わらなくても時間の経過によって環境の方が変化して評価が変わることは十分に有り得る
プロセッサ負荷やメモリ使用量などの足枷がユルユルになって来たことで評価が高くなったのではないか
従って当時とか現在とかの時世を無視しては語れないこともある
2018/01/16(火) 16:51:39.64ID:JwS671kg
それを認めると将来Rustがクソではなかったと証明される余地があるってことで、
それは事実ではないから違うな

今評価されてるのはあくまでラムダ計算であってLispではない、と言えば分かるか?
711デフォルトの名無しさん
垢版 |
2018/01/16(火) 16:54:05.43ID:4ikneXPL
>>709
Yes! That's correct!!
反論の余地とは時代等の外部環境の変化により評価も変化することだね。
なんか別のIDの人が答えちゃったけど。
2018/01/16(火) 16:56:00.39ID:6i0TmEx8
木構造もインデックス使って書かないといけないのか
713デフォルトの名無しさん
垢版 |
2018/01/16(火) 17:19:58.51ID:4ikneXPL
>>710
ワロタwww
お前は未来人か?
未来人を肯定するならrustがクソ言語であることも認めよう。
2018/01/16(火) 17:41:30.80ID:O2dbzEJM
ここまで言語に粘着する精神が理解出来ない
2018/01/16(火) 18:24:58.75ID:IF1qR6jo
>>694
子→親のリンク無し縛りでも動的な追加削除はできると思うけど。
子からのリンクが必要なのは、各ノードへの参照をそのままイテレータとして見せて前後移動したい場合のみじゃね
で、まあ、子からのリンクが絶対必要として、そのためにRc使って要らん参照カウンタと間接参照を各ノード毎に持たせるってすごい無駄に思える
諦めてraw pointerでいいんじゃないかなあ……
2018/01/16(火) 21:10:33.64ID:4jams3dQ
>>696
センスの無さを自分に感じる…Rust難しいな
https://play.rust-lang.org/?gist=0d5f8e5d767ac5b2a0b32b272e8c3797&;version=stable
2018/01/16(火) 23:04:02.65ID:oMs3dhar
案外、未来でRustで書かれたプログラムが暴走して人類の危機だから、
現代にタイムリープしてきてRustを普及させまいとする工作員の可能性が微粒子レベルで存在……しないか
2018/01/16(火) 23:45:58.12ID:xhrqQ7lp
そうだったら5chみたいな辺境じゃなくてもっとちゃんとしたところで活動してるだろ
2018/01/17(水) 00:18:50.74ID:0/gSTs3q
>>716
木構造がどういう構造なのかを勉強したほうがいい
2018/01/17(水) 01:17:11.33ID:SxnML8zQ
>>717
これすき
2018/01/17(水) 01:43:08.30ID:YpnCuGck
スカイネットはRustで書かれていたか…
722デフォルトの名無しさん
垢版 |
2018/01/17(水) 14:46:11.61ID:lavU9jAu
>>704からの>>710の流れで草生える
論理学できない人?
ブーメランかな? wwwwwww
2018/01/17(水) 18:26:41.06ID:yaCIVqOg
子供じみたレスばかり
2018/01/17(水) 22:00:00.30ID:jFkmgXk5
言語オタクが喜びそうな機能を盛り込んだら本当に飛びつきやがったw
みたいな言語だよな。
2018/01/17(水) 22:09:59.44ID:L8tEPBaK
飛び付いたオタクは無事モジラの養分となりましたとさ
2018/01/18(木) 23:44:13.29ID:dg9MpWjG
オッス!オラMozillaの養分!Rustいっちょやってみっか!
2018/01/19(金) 10:54:19.44ID:Oz2p1EAg
またrustfmtごたついてる?
2018/01/19(金) 12:31:26.28ID:Bq+piyrd
あれがごたついてなかったことが過去にあったか?
2018/01/19(金) 12:47:00.76ID:Oz2p1EAg
せやねw

昨日まではcomponentに残ってたんだけどなぁ
また "rustup run nightly cargo install rustfmt-nightly -f" でいれるかー
2018/01/19(金) 17:48:34.83ID:8na6CAQi
stableのやつ使えば良いのでは
2018/01/19(金) 20:17:30.04ID:Oz2p1EAg
>>730
deprecated言われるんだよー
2018/01/19(金) 22:14:56.98ID:mTCJnuoL
ビルド速度がgo並になったら起こして
2018/01/20(土) 00:14:19.48ID:kiT7y7oh
Rustのビルドそんなに遅いか?
Scalaと比べたら誤差だろ
2018/01/20(土) 04:07:03.70ID:d0zmNqbj
誤差が流行語か何かなの?
2018/01/20(土) 11:11:11.19ID:Ceherv8P
>>731
rustup component add rustfmt-preview --toolchain stable
でインストールできるやつのつもりだった
なぜかcargo-fmtは入ってないけど
2018/01/20(土) 11:44:54.08ID:3qVias3W
代入の結果が () を返すのって一見不満なんだが…

#include <stdio.h>
int main() {
int a, b;
a = b = 10;
printf("%d, %d", a, b); // 10, 10
return 0;
}

a = b = 10
p [a, b] # [10, 10]

let b = ref 0 in
let a = b := 10 in
Printf.printf "%b, %d\n" (a = ()) !b (* true, 10 *)

fn main() {
let (a, b);
a = b = 10;
println!("{:?}, {:?}", a, b); // (), 10
}

上から c, ruby, ocaml, rust の結果
所有権のこと考えるとこうなるしかないのかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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