公式
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 part25
https://mevius.5ch.net/test/read.cgi/tech/1722354386/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part26
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/09/20(金) 22:18:38.38ID:c48cFuZJ276デフォルトの名無しさん
2024/10/14(月) 14:31:11.38ID:Tepyp1Xi 中途半端にまともな話ができそうな雰囲気を出されるより
最初からバカ話に全振りしてくれてる今の状況がありがたい
最初からバカ話に全振りしてくれてる今の状況がありがたい
277デフォルトの名無しさん
2024/10/14(月) 14:47:08.94ID:6F/WzjOb だれも Rust の話してないよねこのスレ
278デフォルトの名無しさん
2024/10/14(月) 17:04:57.32ID:AQF6byo6 なにが一番みたいな論争するやつは軒並みアホだよね
いつまで厨房やってんだか
いつまで厨房やってんだか
279デフォルトの名無しさん
2024/10/14(月) 17:39:30.59ID:jiIXwm87 定期的にどこそこが採用しただの、アメリカ政府が推薦したという話が出てくる
が、具体的にコードを示して優位性を説いたりはしない
が、具体的にコードを示して優位性を説いたりはしない
280デフォルトの名無しさん
2024/10/14(月) 19:35:56.02ID:Tepyp1Xi281デフォルトの名無しさん
2024/10/15(火) 15:25:40.98ID:xmb61fZ8 play.rust-lang.org 死んでるのか
282デフォルトの名無しさん
2024/10/15(火) 16:19:54.80ID:ljjOrbgX >>279
ある時からコンピュータソフトの分野に権威性を持ち込む人が増えた。
ある時からコンピュータソフトの分野に権威性を持ち込む人が増えた。
283デフォルトの名無しさん
2024/10/15(火) 20:41:46.23ID:7T7mXQAC284デフォルトの名無しさん
2024/10/15(火) 21:39:59.36ID:kUMekxil 関数型由来の考えもあるけど関数型言語ではない、というのがバランス的に良かった気がする
関数型に振ってたらRustもScalaやF#くらいのポジションに収まってたかも?
関数型に振ってたらRustもScalaやF#くらいのポジションに収まってたかも?
285デフォルトの名無しさん
2024/10/16(水) 01:15:48.39ID:OzuoU4nz firefoxってホントにRust使ってるの?ってくらいメモリ管理ダサい
286デフォルトの名無しさん
2024/10/16(水) 06:29:19.89ID:J5oRWUb2 火狐と言えば、これってRustで開発してることに関係あるのかな?
ゼロデイ脆弱性の報告から解決までたった25時間 ~Mozillaが対応の早さをアピール
「Firefox」、「Thunderbird」、「Tor Browser」を最新にしよう
https://forest.watch.impress.co.jp/docs/news/1631133.html
ゼロデイ脆弱性の報告から解決までたった25時間 ~Mozillaが対応の早さをアピール
「Firefox」、「Thunderbird」、「Tor Browser」を最新にしよう
https://forest.watch.impress.co.jp/docs/news/1631133.html
287デフォルトの名無しさん
2024/10/16(水) 06:33:37.57ID:J5oRWUb2 >>284
関数型言語の普及を願ってる人からすればショックだろうけど、Haskell好きな自分も現実解はその方が良いとは思う。
そういう意味じゃScalaも良いところまで行ってたんだけど、理由忘れたけど自滅したってのは覚えてる。
関数型言語の普及を願ってる人からすればショックだろうけど、Haskell好きな自分も現実解はその方が良いとは思う。
そういう意味じゃScalaも良いところまで行ってたんだけど、理由忘れたけど自滅したってのは覚えてる。
288デフォルトの名無しさん
2024/10/16(水) 07:16:03.45ID:Rxxbhur+ ScalaはScalazとかで関数型を推しすぎたのと、標準ライブラリに破壊的変更バリバリ入れて過去のコードが動かなくなったせいだと思う
289デフォルトの名無しさん
2024/10/16(水) 08:13:07.22ID:TssvwW2w >>284
言われてみればjsもそれに近いな
言われてみればjsもそれに近いな
290デフォルトの名無しさん
2024/10/16(水) 09:44:47.18ID:IRnMzRmI Rustで開発してたらゼロデイ脆弱性なんて起こりません(キリっ
291デフォルトの名無しさん
2024/10/16(水) 09:46:37.48ID:IRnMzRmI Scalaの失敗はJavaをベースにしたこと
292デフォルトの名無しさん
2024/10/16(水) 11:03:29.32ID:TpBdArw+293デフォルトの名無しさん
2024/10/16(水) 11:05:35.24ID:TpBdArw+ >>292
>> GoogleおよびMicrosoftはセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
>> C/C++を使う限りこれらを根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
>> GoogleおよびMicrosoftはセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
>> C/C++を使う限りこれらを根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
294デフォルトの名無しさん
2024/10/16(水) 11:06:00.19ID:RoKRQLvT 中国製やロシア製のクレート使ってるとまずいの?
295デフォルトの名無しさん
2024/10/16(水) 11:24:30.99ID:iczv67yq Rustの一番の特徴はスタックフレームを意識して言語仕様の下敷きにしていることかと。ライフタイムとかスコープとか。結果として再帰構造を取り込んでいるから言語として強い。
関数型プログラミングを前面に出すとHaskellみたいになりそうだから止めてほしいところ。
関数型プログラミングを前面に出すとHaskellみたいになりそうだから止めてほしいところ。
296デフォルトの名無しさん
2024/10/16(水) 11:35:27.63ID:k6iNMcvo 副作用がないとかは嬉しいけど、関数型信者はデータ構造をなんでもリンクドリストにしようとするキチガイだから関わりたくない
297デフォルトの名無しさん
2024/10/16(水) 11:40:53.10ID:9ExG49iw298デフォルトの名無しさん
2024/10/16(水) 12:33:07.98ID:ru3N7GME >Rustの一番の特徴はスタックフレームを意識して言語仕様の下敷きにしていることかと。
こういう発言を見ると無駄にRust推してるやつのレベルの低さに呆れる
こういう発言を見ると無駄にRust推してるやつのレベルの低さに呆れる
299デフォルトの名無しさん
2024/10/16(水) 12:34:03.40ID:kfN83BOA >>297
Lispは関数型もどきってHaskellが言ってた
Lispは関数型もどきってHaskellが言ってた
300デフォルトの名無しさん
2024/10/16(水) 12:49:23.38ID:IRnMzRmI 過去スレのこの辺からの流れ思い出してしまった
https://mevius.5ch.net/test/read.cgi/tech/1692105879/423-
https://mevius.5ch.net/test/read.cgi/tech/1692105879/423-
301デフォルトの名無しさん
2024/10/16(水) 16:38:38.84ID:1LoW/zWh スクリプト言語上がりからするとスタックフレームを意識するのは斬新なんだろ
302デフォルトの名無しさん
2024/10/16(水) 17:01:37.45ID:+2+Nhw/8 lispはlispを操作してlispを吐き出すための言語であって
それ以外の機能はオマケだから
それ以外の機能はオマケだから
303デフォルトの名無しさん
2024/10/16(水) 17:34:30.78ID:9ExG49iw >>299
関数型がどうとかは重要ではなくて「リストを多用しがちと思われているLisp」という意味
関数型がどうとかは重要ではなくて「リストを多用しがちと思われているLisp」という意味
304デフォルトの名無しさん
2024/10/16(水) 17:48:29.96ID:1LoW/zWh 普通に多用するだろ
lisp使っててそこを認めないやついるのに驚き
lisp使っててそこを認めないやついるのに驚き
305デフォルトの名無しさん
2024/10/16(水) 17:54:09.44ID:jR87Fk4R C言語もリンクリストの権現みたいな存在だったんだよ。
306デフォルトの名無しさん
2024/10/16(水) 17:56:35.94ID:jR87Fk4R リンクトリストで、一番初期に有名になったのが、LISP。
それを分かりやすくしたのがC言語、みたいな感じ。
リンクトリストは、8MHz程度の16BIT-CPUにおいて、
動的配列に比べてとても効率が良かったので、人気が出た。
それを分かりやすくしたのがC言語、みたいな感じ。
リンクトリストは、8MHz程度の16BIT-CPUにおいて、
動的配列に比べてとても効率が良かったので、人気が出た。
307デフォルトの名無しさん
2024/10/16(水) 18:07:55.38ID:1LoW/zWh lispのリストとcでリンクリストが作れることは次元が違う話
lisp知らんやつに言っても理解できんだろが
だいたいリンクリストの権現って何だ?w
lisp知らんやつに言っても理解できんだろが
だいたいリンクリストの権現って何だ?w
308デフォルトの名無しさん
2024/10/16(水) 18:11:33.23ID:jDyVYSBS ごん‐げん【権現】 の解説
1 仏・菩薩 (ぼさつ) が人々を救うため、仮の姿をとって現れること。
2 仏・菩薩の垂迹 (すいじゃく) として化身して現れた日本の神。本地垂迹説による。熊野権現・金毘羅 (こんぴら) 権現などの類。
3 仏・菩薩にならって称した神号。東照大権現(徳川家康)の類。
ありがたや🙏🙏🙏
1 仏・菩薩 (ぼさつ) が人々を救うため、仮の姿をとって現れること。
2 仏・菩薩の垂迹 (すいじゃく) として化身して現れた日本の神。本地垂迹説による。熊野権現・金毘羅 (こんぴら) 権現などの類。
3 仏・菩薩にならって称した神号。東照大権現(徳川家康)の類。
ありがたや🙏🙏🙏
309デフォルトの名無しさん
2024/10/16(水) 18:13:29.12ID:qBTeykyO Cって、プログラムがリストになってるん?
lisp系以外で、こういうのってない気がするんだけど。
lisp系以外で、こういうのってない気がするんだけど。
310デフォルトの名無しさん
2024/10/16(水) 18:39:06.97ID:jR87Fk4R311デフォルトの名無しさん
2024/10/16(水) 20:06:13.28ID:IdjFDmt0 >>285
Firefoxの一部はレンダリング部分などRustになっているけど
そのメモリ管理部分を含めて本体はC++のままだよ
いずれにしても各アプリケーションによるメモリ管理部分は使用言語C++/Rustのメモリ管理とは別レイヤなので各言語の問題ではないね
Firefoxの一部はレンダリング部分などRustになっているけど
そのメモリ管理部分を含めて本体はC++のままだよ
いずれにしても各アプリケーションによるメモリ管理部分は使用言語C++/Rustのメモリ管理とは別レイヤなので各言語の問題ではないね
312デフォルトの名無しさん
2024/10/16(水) 20:08:26.05ID:IdjFDmt0 >>295
ライフタイム導入でスタックフレーム上への参照と変数が管理するヒープへの参照を区別せず安全に扱えるようになっただけで意識するしないは別問題じゃないかな
そのためコストの高いヒープを回避できる機会が増えて高速化に寄与しているのは間違いないけど
ライフタイム導入でスタックフレーム上への参照と変数が管理するヒープへの参照を区別せず安全に扱えるようになっただけで意識するしないは別問題じゃないかな
そのためコストの高いヒープを回避できる機会が増えて高速化に寄与しているのは間違いないけど
313デフォルトの名無しさん
2024/10/16(水) 20:11:56.13ID:IdjFDmt0 >>306
今はパイプラインとキャッシュによりほとんどの利用ケースでリンクリストよりベクタが速くなってしまったね
元々メモリ使用量や多段間接参照になる点でリンクリストが不利だった点に加えて追い打ちをかけるように
今はパイプラインとキャッシュによりほとんどの利用ケースでリンクリストよりベクタが速くなってしまったね
元々メモリ使用量や多段間接参照になる点でリンクリストが不利だった点に加えて追い打ちをかけるように
314デフォルトの名無しさん
2024/10/16(水) 20:13:18.48ID:IdjFDmt0 >>310
Lispは言語としてcond, car, cdrがあるからリンクリスト言語だけどC言語は明確に違うね
Cはリンクリストもベクタもその他のデータ構造も実装できるというだけの平等な立ち位置かな
Lispは言語としてcond, car, cdrがあるからリンクリスト言語だけどC言語は明確に違うね
Cはリンクリストもベクタもその他のデータ構造も実装できるというだけの平等な立ち位置かな
315デフォルトの名無しさん
2024/10/16(水) 20:21:57.12ID:jR87Fk4R316デフォルトの名無しさん
2024/10/16(水) 20:27:30.93ID:RoKRQLvT リンクリストは不変コレクションだから、副作用にこだわる関数型言語では特別な地位がある
ちなみにScalaではVectorという名前のもう一つの不変コレクションが多用されているんだが
これのRust版あるのかな? 中身は1ノード32要素のトライ木
ちなみにScalaではVectorという名前のもう一つの不変コレクションが多用されているんだが
これのRust版あるのかな? 中身は1ノード32要素のトライ木
317デフォルトの名無しさん
2024/10/16(水) 20:48:00.68ID:jDyVYSBS ゆーてClojureとかHylangとか今ドキLisp女子はlist processingナニソレって感じのやつばっかやん
318デフォルトの名無しさん
2024/10/16(水) 21:41:36.61ID:NMNSAXL7 やっぱりこのスレ関数型言語わかる人多いの?
C/C++系から入った自分としてはサッパリわからん
C/C++系から入った自分としてはサッパリわからん
319デフォルトの名無しさん
2024/10/16(水) 22:33:14.93ID:9ExG49iw >>318
パラダイムは実際にはグラデーション的で、要素が混ざり合ってる。
明瞭に線を引いて分類できるわけではない。
ML 系とか LISP 系とかは関数型みたいに言われることは多いんだが実際には関数型要素が強めのマルチパラダイムって感じで、 C++ を使いこなせる人なら入門書をちゃんと読めば使えるくらいの難易度。
誰もが文句なく関数型に分類するメジャーな汎用プログラミング言語は Haskell くらいだと思う。
パラダイムは脇に置くとして、 ML 系はインデントで構造を表す文法だったり LISP 系は丸括弧ばかりで構造を表すという外観の違いの段階で忌避感を持っちゃう人は結構いるかも?
パラダイムは実際にはグラデーション的で、要素が混ざり合ってる。
明瞭に線を引いて分類できるわけではない。
ML 系とか LISP 系とかは関数型みたいに言われることは多いんだが実際には関数型要素が強めのマルチパラダイムって感じで、 C++ を使いこなせる人なら入門書をちゃんと読めば使えるくらいの難易度。
誰もが文句なく関数型に分類するメジャーな汎用プログラミング言語は Haskell くらいだと思う。
パラダイムは脇に置くとして、 ML 系はインデントで構造を表す文法だったり LISP 系は丸括弧ばかりで構造を表すという外観の違いの段階で忌避感を持っちゃう人は結構いるかも?
320デフォルトの名無しさん
2024/10/16(水) 23:59:33.67ID:NMNSAXL7 Rustで使うもの (式指向という考え方, match式, 代数的データ型, リストやOptionへのmap, filterなどの操作等) は理解できてるし、良いなと思って使えてる
それでも Lisp や Haskell は難しいという印象があるんだよね
指摘の通り見た目の見慣れなさで抵抗感があるだけなのかもしれない
それでも Lisp や Haskell は難しいという印象があるんだよね
指摘の通り見た目の見慣れなさで抵抗感があるだけなのかもしれない
321デフォルトの名無しさん
2024/10/17(木) 00:17:27.82ID:CZAZeUbm > ML 系はインデントで構造を表す文法
Haskell や F# が人気なのは分かるけど、OCaml や Standard ML を差し置いて勝手に ML 系の代表ヅラしないでくれますかね……
Haskell や F# が人気なのは分かるけど、OCaml や Standard ML を差し置いて勝手に ML 系の代表ヅラしないでくれますかね……
322デフォルトの名無しさん
2024/10/17(木) 00:25:33.00ID:NeG4778y 元々は研究用の言語でコンパイラ開発とか特定の用途以外だと実用性低いし
ほとんど趣味の領域だから無理に手を出さなくていいよ
Haskellの知識があるとRustのtraitとか?演算子(Result戻し)に馴染みやすくなるけど
そのためにHaskellを勉強するほどではない
ほとんど趣味の領域だから無理に手を出さなくていいよ
Haskellの知識があるとRustのtraitとか?演算子(Result戻し)に馴染みやすくなるけど
そのためにHaskellを勉強するほどではない
323デフォルトの名無しさん
2024/10/17(木) 00:26:57.93ID:SxNRrx7E >>321
Hakell は ML 系ではない扱いだろ。
Hakell は ML 系ではない扱いだろ。
324デフォルトの名無しさん
2024/10/17(木) 00:55:24.22ID:yABRuexK >>319
関数型の定義は何?
関数型の定義は何?
325デフォルトの名無しさん
2024/10/17(木) 01:12:31.87ID:WrCN832N326デフォルトの名無しさん
2024/10/17(木) 01:44:33.23ID:WrCN832N >>299
関数型プログラミングが提唱される前の言語だから、関数合成とか考慮されてないからとか?
Lispは歴史的にLisp以外に関数型言語が無い時代があるので、手続き型言語をお手本にコードが書かれてloop使いまくりの手続き型言語っぽいLispコードが多かったとは聞いている。
関数型プログラミングが提唱される前の言語だから、関数合成とか考慮されてないからとか?
Lispは歴史的にLisp以外に関数型言語が無い時代があるので、手続き型言語をお手本にコードが書かれてloop使いまくりの手続き型言語っぽいLispコードが多かったとは聞いている。
327デフォルトの名無しさん
2024/10/17(木) 01:57:40.19ID:WrCN832N >>318
多分、変数がイミュータブル(不変)だと何がありがたいのかは何かしら関数型言語触らないと分からないと思う。
なので、Rustに飛びつく人は(全員ではないにしろ)関数型言語を触ったことがある人が多いとは思う。
多分、変数がイミュータブル(不変)だと何がありがたいのかは何かしら関数型言語触らないと分からないと思う。
なので、Rustに飛びつく人は(全員ではないにしろ)関数型言語を触ったことがある人が多いとは思う。
328デフォルトの名無しさん
2024/10/17(木) 03:22:22.09ID:FXzuQNl3 rustは関数型言語の特徴を一通り搭載しつつ、あえて数学用語はあまり使わない所が良い。関数型というとプログラム作らずに圏論の話に明け暮れる人が多すぎ。
rustはプログラムを書くために実用的な機能にまとめましたって感じでいい。
rustはプログラムを書くために実用的な機能にまとめましたって感じでいい。
329デフォルトの名無しさん
2024/10/17(木) 03:29:08.36ID:FXzuQNl3 lispが読めないって人はテキストエディタでカッコを全部スペースに置換してしまえばいい。
そしたらインデントだけ見えるようになる。
カッコを見ないのが正解。
自分はカッコの表示on/off機能をエディタに入れてる。
そしたらインデントだけ見えるようになる。
カッコを見ないのが正解。
自分はカッコの表示on/off機能をエディタに入れてる。
330デフォルトの名無しさん
2024/10/17(木) 06:58:43.79ID:yABRuexK 関数型言語とは何かを定義せず雰囲気てわ分類するなよ
よくそんなオツムでプログラミングやってんな
よくそんなオツムでプログラミングやってんな
331デフォルトの名無しさん
2024/10/17(木) 07:48:34.04ID:ETsUhebR ユーザー視点なら、単なる「関数型言語」というラベルくらいでいいんじゃない?
バズワードみたいなもの。
そもそも「関数」「計算可能関数 」を理解しているやつはどれくらいいるんかしらん。
バズワードみたいなもの。
そもそも「関数」「計算可能関数 」を理解しているやつはどれくらいいるんかしらん。
332デフォルトの名無しさん
2024/10/17(木) 08:51:31.65ID:SxNRrx7E >>324
関数の入出力でプログラムを構成するスタイルってくらいのふわっとした定義しかない。
それをサポートする言語機能が多いか少ないかでグラデーションになってる。
クロージャがあれば関数型っぽいし、関数合成があればもっとだし、カリー化があればいかにもぽいぽい。
関数の入出力でプログラムを構成するスタイルってくらいのふわっとした定義しかない。
それをサポートする言語機能が多いか少ないかでグラデーションになってる。
クロージャがあれば関数型っぽいし、関数合成があればもっとだし、カリー化があればいかにもぽいぽい。
333デフォルトの名無しさん
2024/10/17(木) 09:44:28.22ID:Dr9I7rOm >>311
firefoxでも全然使われてないRust
firefoxでも全然使われてないRust
334デフォルトの名無しさん
2024/10/17(木) 12:07:14.38ID:wG5d2OUn 知りもしないことを知ったかぶりして書くやつが多いスレだこと
335デフォルトの名無しさん
2024/10/17(木) 15:01:11.80ID:HAj7NAac きみらRustでVecとかC++でvectorとか使ってんの?
なんでLinkedList使わんの?
なんでLinkedList使わんの?
336デフォルトの名無しさん
2024/10/17(木) 15:05:42.63ID:HAj7NAac337デフォルトの名無しさん
2024/10/17(木) 16:50:02.90ID:hLaeUZg0 >>335
アンロールドリンクドリストならベクターより良いよ
アンロールドリンクドリストならベクターより良いよ
338デフォルトの名無しさん
2024/10/17(木) 20:18:17.74ID:9pxlHN7V >>324
普通はこういう風に説明される
https://web.sfc.keio.ac.jp/~hattori/prog-theory/ja/functional.html
1. プログラムは関数定義の集合であり、関数呼び出しによってそれらを組み合わせる。
2. 関数は first class object である。
3. 文という単位は無く、プログラムの実行とは式を評価することである。
4. 参照透過性がある。
主に、2が便利だから、rustにも部分的に採用されている
普通はこういう風に説明される
https://web.sfc.keio.ac.jp/~hattori/prog-theory/ja/functional.html
1. プログラムは関数定義の集合であり、関数呼び出しによってそれらを組み合わせる。
2. 関数は first class object である。
3. 文という単位は無く、プログラムの実行とは式を評価することである。
4. 参照透過性がある。
主に、2が便利だから、rustにも部分的に採用されている
339デフォルトの名無しさん
2024/10/17(木) 20:46:18.51ID:yABRuexK340デフォルトの名無しさん
2024/10/17(木) 21:11:20.46ID:9pxlHN7V341デフォルトの名無しさん
2024/10/17(木) 21:25:15.67ID:zXjn5afM >>338
ウケるw
ウケるw
342デフォルトの名無しさん
2024/10/17(木) 21:25:56.56ID:zXjn5afM >>339
さらにウケるw
さらにウケるw
343デフォルトの名無しさん
2024/10/17(木) 21:46:24.33ID:WrCN832N >>328
Haskellerの一部しか圏論言ってないと思うけど…。
(確かに声は大きいが)
モナドで躓く人や、モナドの理解がまだ浅い人は圏論言わないし、OCamlやF#、SMLな人も圏論言わない。
(そして、モナドを深く理解した人でも全員が圏論言うわけではない)
Lisp系の人は言わずもがな。
関数型言語を使ってる人の中でも圏論言う人はごく少数。
(繰り返すが、一部の人の声が大きいのは認める)
Haskellerの一部しか圏論言ってないと思うけど…。
(確かに声は大きいが)
モナドで躓く人や、モナドの理解がまだ浅い人は圏論言わないし、OCamlやF#、SMLな人も圏論言わない。
(そして、モナドを深く理解した人でも全員が圏論言うわけではない)
Lisp系の人は言わずもがな。
関数型言語を使ってる人の中でも圏論言う人はごく少数。
(繰り返すが、一部の人の声が大きいのは認める)
344デフォルトの名無しさん
2024/10/17(木) 21:51:50.24ID:yABRuexK345デフォルトの名無しさん
2024/10/17(木) 21:58:01.60ID:WrCN832N >>338
Rustの説明としては弱いかな。
2はJavaもC#も持ってるし。
自分は4に重きを置いた手続き型言語って位置付けだな。
マルチスレッドプログラミングで4が重要。
(ただし、Haskellは遅延評価なので4を生かしきれず、Idris2の様な正格評価版Haskellを生み出した)
あとは、C並みに速いだけだったらOCamlやSMLも同じこと言ってるので、2,4を満たしつつGCが無いのがRustの特徴だと思う。
Rustの説明としては弱いかな。
2はJavaもC#も持ってるし。
自分は4に重きを置いた手続き型言語って位置付けだな。
マルチスレッドプログラミングで4が重要。
(ただし、Haskellは遅延評価なので4を生かしきれず、Idris2の様な正格評価版Haskellを生み出した)
あとは、C並みに速いだけだったらOCamlやSMLも同じこと言ってるので、2,4を満たしつつGCが無いのがRustの特徴だと思う。
346デフォルトの名無しさん
2024/10/17(木) 22:51:01.11ID:C0hMoyx0 言語が生き残るかどうかは
ある程度の広さがある分野においてその言語が必須かどうかで決まる
例えば広まってるOS環境での主開発言語と公式で定められたりウェブブラウザのように特定言語が強いられるような環境における利用必須もあれば
C言語のように速さと省メモリ性で他とは大差の唯一性による必須もある
つまり関数型によるメリットなんて二の次なのだ
C言語と同等の速さと省メモリ性を持ちつつ様々な安全性も保証するRustはCに替わって広い分野での必須言語となりつつある
そのRustがたまたま関数型の特徴を多く兼ね備えて非常に使いやすいというだけにすぎない
ある程度の広さがある分野においてその言語が必須かどうかで決まる
例えば広まってるOS環境での主開発言語と公式で定められたりウェブブラウザのように特定言語が強いられるような環境における利用必須もあれば
C言語のように速さと省メモリ性で他とは大差の唯一性による必須もある
つまり関数型によるメリットなんて二の次なのだ
C言語と同等の速さと省メモリ性を持ちつつ様々な安全性も保証するRustはCに替わって広い分野での必須言語となりつつある
そのRustがたまたま関数型の特徴を多く兼ね備えて非常に使いやすいというだけにすぎない
347デフォルトの名無しさん
2024/10/17(木) 23:33:24.78ID:784LeBrK 突然の演説
348デフォルトの名無しさん
2024/10/18(金) 00:37:38.20ID:eikO6PmP349デフォルトの名無しさん
2024/10/18(金) 03:49:07.30ID:5Kk3482a350デフォルトの名無しさん
2024/10/18(金) 08:02:39.80ID:Zig2xljb えっAPLもっ?
351デフォルトの名無しさん
2024/10/18(金) 08:57:56.68ID:phux1vRq352デフォルトの名無しさん
2024/10/18(金) 09:16:52.85ID:zss9wXA+ いやまあ>>338 の1と2は全然別のことを言ってるだろ
これで説明が足りないと感じる人はFirst class objectの意味を知らないとかか?
これで説明が足りないと感じる人はFirst class objectの意味を知らないとかか?
353デフォルトの名無しさん
2024/10/18(金) 09:31:39.70ID:ady3VKii 関数を組み合わせるってコンビネーターがないと組み合わせられないからね
ファーストクラス関数がないとコンビネーターは無理だからな
ファーストクラス関数がないとコンビネーターは無理だからな
354デフォルトの名無しさん
2024/10/18(金) 09:32:07.67ID:zss9wXA+ 解説したらワンパン終了というが、こう言う時の解説って案外難しいんだよな
相手が「first class object」の意味を知らないのか、「関数」の意味を知らないのか、日本語の文法を知らないのか、それとも文を読む気がないのか、はたまたレスバで勝ちたくて因縁付けてるだけなのか
相手の状態によって適切な解説は異なる。相手の知識をエスパーして解説を始めても意外とフィットしなくてワンパンで終わらない
掲示板でそこまでの手間をかけても、相手がレスバで勝ちたいだけだったら何も得られない。だから馬鹿にして去るのが最適解になってしまう。
相手が「first class object」の意味を知らないのか、「関数」の意味を知らないのか、日本語の文法を知らないのか、それとも文を読む気がないのか、はたまたレスバで勝ちたくて因縁付けてるだけなのか
相手の状態によって適切な解説は異なる。相手の知識をエスパーして解説を始めても意外とフィットしなくてワンパンで終わらない
掲示板でそこまでの手間をかけても、相手がレスバで勝ちたいだけだったら何も得られない。だから馬鹿にして去るのが最適解になってしまう。
355デフォルトの名無しさん
2024/10/18(金) 11:13:30.31ID:wVDH4S6Q >相手の知識をエスパーして解説を始めても意外とフィットしなくて
レスバが目的なら判らないフリしてるだけだからフィットする訳がない
レスバが目的なら判らないフリしてるだけだからフィットする訳がない
356デフォルトの名無しさん
2024/10/18(金) 11:20:18.93ID:/SvZNagR >>348
その文言に騙されたヤツはほんと多いと思う
その文言に騙されたヤツはほんと多いと思う
357デフォルトの名無しさん
2024/10/18(金) 13:34:55.49ID:io02HZIQ >>339
例えばC言語の場合は関数は第一級オブジェクトじゃないけど、それは知ってる?
例えばC言語の場合は関数は第一級オブジェクトじゃないけど、それは知ってる?
358デフォルトの名無しさん
2024/10/18(金) 13:52:02.38ID:xbVzWiEk359デフォルトの名無しさん
2024/10/18(金) 14:00:22.06ID:xbVzWiEk >「1. プログラムは関数定義の集合であり、関数呼び出しによってそれらを組み合わせる。」
関数型言語でも関数定義以外にもモジュールや型や変数の定義があるので
関数定義の集合というと言い過ぎ
厳密な話ではなくプログラムの捉え方のようなざっくりした話であれば
C言語で書いた手続き型的なプログラムでも1は成り立つので
結局何が特徴だと言いたいのかわからない残念な文章
関数型言語でも関数定義以外にもモジュールや型や変数の定義があるので
関数定義の集合というと言い過ぎ
厳密な話ではなくプログラムの捉え方のようなざっくりした話であれば
C言語で書いた手続き型的なプログラムでも1は成り立つので
結局何が特徴だと言いたいのかわからない残念な文章
360デフォルトの名無しさん
2024/10/18(金) 14:26:18.56ID:at3pRl/S パラダイムはプログラムの構成の話なので、 C でオブジェクト指向的なプログラムを書いてもいいし関数指向的に書いてもいい。
言語としてクロージャがなくても構造体と関数の組をクロージャと見做して構成することも出来る。
ただ、なるべく直接的に言語の機能としてサポートがあるに越したことは無いし、常識的には言語が想定している形でプログラムを構成したほうが楽ってだけの話だ。
言語の機能での分類は「だいたいこっち寄り」くらいのことしか言えない曖昧なもんだわ。
言語としてクロージャがなくても構造体と関数の組をクロージャと見做して構成することも出来る。
ただ、なるべく直接的に言語の機能としてサポートがあるに越したことは無いし、常識的には言語が想定している形でプログラムを構成したほうが楽ってだけの話だ。
言語の機能での分類は「だいたいこっち寄り」くらいのことしか言えない曖昧なもんだわ。
361デフォルトの名無しさん
2024/10/18(金) 17:16:35.88ID:0JUhcpKJ >>358
一連のレスで唯一CSの教養を感じるわ
そのとおりであれは定義でもなんでもなく、手続き型言語に関数風味をつけた言語の紹介文でしかない
1,2が当然のように別物といってるやつは計算基礎論履修してないわな
それでも1をエスパーすると関数の集合でなく合成と訂正すればまぁ理解できる
となると関数がビルディングブロックなので2の説明は不要となる
あとファーストクラスオブジェクトってのも怪しい名称だわな
手続き型言語でインラインで関数定義できる程度のことをかっこつけて言ってるだけしか聞こえん
一連のレスで唯一CSの教養を感じるわ
そのとおりであれは定義でもなんでもなく、手続き型言語に関数風味をつけた言語の紹介文でしかない
1,2が当然のように別物といってるやつは計算基礎論履修してないわな
それでも1をエスパーすると関数の集合でなく合成と訂正すればまぁ理解できる
となると関数がビルディングブロックなので2の説明は不要となる
あとファーストクラスオブジェクトってのも怪しい名称だわな
手続き型言語でインラインで関数定義できる程度のことをかっこつけて言ってるだけしか聞こえん
362デフォルトの名無しさん
2024/10/18(金) 17:47:07.37ID:72lp8MJn363デフォルトの名無しさん
2024/10/18(金) 18:29:51.87ID:ady3VKii >1. プログラムは関数定義の集合であり、
>関数呼び出しによってそれらを組み合わせる。
関数定義の集合はプログラムってことだから
例えば{fの定義,gの定義}はプログラムだろ
fの定義が f (x) =fの式 でgの定義が g (x) =gの式とすると
fの引数xにgを入れてを呼び出して f (g) =fの式の中のxをgに置き換えた式 になって
f ( g) =f式の中のxをgに置き換えた式 も関数定義だから
{fの定義、gの定義、fgの定義}もプログラムってことでしょ
3によってプログラムの実行とはfgの式とかを評価することでしょ
>関数呼び出しによってそれらを組み合わせる。
関数定義の集合はプログラムってことだから
例えば{fの定義,gの定義}はプログラムだろ
fの定義が f (x) =fの式 でgの定義が g (x) =gの式とすると
fの引数xにgを入れてを呼び出して f (g) =fの式の中のxをgに置き換えた式 になって
f ( g) =f式の中のxをgに置き換えた式 も関数定義だから
{fの定義、gの定義、fgの定義}もプログラムってことでしょ
3によってプログラムの実行とはfgの式とかを評価することでしょ
364デフォルトの名無しさん
2024/10/18(金) 19:42:44.39ID:v0IxkFYT365デフォルトの名無しさん
2024/10/18(金) 19:55:50.08ID:ndvmbteL 363が全然判ってなくて草
366デフォルトの名無しさん
2024/10/18(金) 21:19:37.07ID:6b0+FHXo367デフォルトの名無しさん
2024/10/18(金) 21:27:21.74ID:Yil/SvXx368デフォルトの名無しさん
2024/10/18(金) 21:33:52.38ID:v0IxkFYT369デフォルトの名無しさん
2024/10/18(金) 22:19:50.60ID:VQpP6XIE >>348
んでも、上で書いた通りOCamlやSMLも誇大広告してたし、さらに言えばJITコンパイラ出した当初のJavaやC#も似たような誇大広告してたんだけどね。
んでも、上で書いた通りOCamlやSMLも誇大広告してたし、さらに言えばJITコンパイラ出した当初のJavaやC#も似たような誇大広告してたんだけどね。
370デフォルトの名無しさん
2024/10/18(金) 22:55:23.05ID:36/T9R8D 「関数型プログラミング」にも「第一級オブジェクト」にも言語の垣根を超えた一般的な定義というものはない
「オブジェクト指向」を自称する言語たちがそれぞれ微妙に異なるオブジェクトを実装しているのとほぼ同じ
「オブジェクト指向」を自称する言語たちがそれぞれ微妙に異なるオブジェクトを実装しているのとほぼ同じ
371デフォルトの名無しさん
2024/10/18(金) 23:00:20.33ID:36/T9R8D てかどうでもいいけどfirst-class objectって英語圏ネイティブからするとどういう印象を受ける言葉なんだろうね
masterとかblacklistなんかとは比べ物にならないレベルで明確にpolitically incorrectな気がするけど
masterとかblacklistなんかとは比べ物にならないレベルで明確にpolitically incorrectな気がするけど
372デフォルトの名無しさん
2024/10/18(金) 23:10:22.32ID:Py1NdU9l >>364
それは流石に関数に対する理解が浅いかと。
関数は要素と像のペアの集合なんだから、定義域と値域は関数に必ず存在する重要な性質だろ。
それを無視するのは関数の本質を無視するようなもの。
「定義域、値域とかいいだしたら論理が循環する」と言うなら、>338 に関連して定義域、値域よりも関数の定義に近い重要な性質って何よ?
それは流石に関数に対する理解が浅いかと。
関数は要素と像のペアの集合なんだから、定義域と値域は関数に必ず存在する重要な性質だろ。
それを無視するのは関数の本質を無視するようなもの。
「定義域、値域とかいいだしたら論理が循環する」と言うなら、>338 に関連して定義域、値域よりも関数の定義に近い重要な性質って何よ?
373デフォルトの名無しさん
2024/10/18(金) 23:28:21.46ID:6b0+FHXo 理解不足かもしれないけど「『副作用の無い、単に写像として表現できる関数』を中心に組み立てる」くらいの認識じゃだめなの?
数学的な意味での定義域はプログラミングでは成り立たない気がする
引数の型がi32なら、その関数には32ビット整数の取り得る値すべてが入るわけだし
ゼロ除算は数学上は定義できないけど、プログラムとしては書けてしまうから「考慮しない」わけにはいかず、エラー処理が必要なわけで
数学的な意味での定義域はプログラミングでは成り立たない気がする
引数の型がi32なら、その関数には32ビット整数の取り得る値すべてが入るわけだし
ゼロ除算は数学上は定義できないけど、プログラムとしては書けてしまうから「考慮しない」わけにはいかず、エラー処理が必要なわけで
374デフォルトの名無しさん
2024/10/18(金) 23:35:59.34ID:cbeCWz4D ガロア体の話?
375デフォルトの名無しさん
2024/10/18(金) 23:56:20.42ID:US/DDn9d モダンな関数型プログラミングのサポートもメモリ安全性も今では必須の前提になっている
そのうえでC言語と同等の速さと省メモリ性を兼ね備えたRustだけが核心部でも使われ生き残るのさ
そのうえでC言語と同等の速さと省メモリ性を兼ね備えたRustだけが核心部でも使われ生き残るのさ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【J SPORTS】FIFA U-17ワールドカップ ★9
- 【J SPORTS】FIFA U-17ワールドカップ ★8
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 村重杏奈でいいから俺と結婚してくれないかな
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
