It is well-known that closures and objects are equivalent. So are actors. Which one is the most fundamental?
よく知られたように、クロージャとオブジェクトは等価です。アクターも同様です。どの概念が最も基本的なのでしょうか?
探検
Closures vs Objects
2024/02/19(月) 20:39:15.91ID:VT95BnI9
192デフォルトの名無しさん
2025/02/21(金) 19:25:08.97ID:NlF3aFif 「クロージャを引数にとってクロージャを返すクロージャ」を引数にとって「クロージャを引数にとってクロージャを返すクロージャ」を返すクロージャ
193デフォルトの名無しさん
2025/02/21(金) 20:11:13.15ID:lKEY3ckS make-stream head thunk := [cont] -> cont head thunk
head stream := stream ([head _] -> head)
rest stream := stream ([_ thunk] -> thunk [])
nat-from n := make-stream n ([] -> nat-from (n+1))
take 0 stream := []
take _ [] := []
take n stream := cons (head stream) (take (n-1) (rest stream))
head stream := stream ([head _] -> head)
rest stream := stream ([_ thunk] -> thunk [])
nat-from n := make-stream n ([] -> nat-from (n+1))
take 0 stream := []
take _ [] := []
take n stream := cons (head stream) (take (n-1) (rest stream))
194デフォルトの名無しさん
2025/02/21(金) 23:53:10.97ID:zYI+C5dr >>191
必要性は当然わかってる
しかし動的生成する必要性が全く感じられない
一般的に型は静的に扱えるなら静的に扱える方が有利
もう一つ
コンテナも制約を受けるとわかっているならなぜそちらも型パラメータにしないのか?
フィールド 't' だけを型パラメータにしていることを問題視している
必要性は当然わかってる
しかし動的生成する必要性が全く感じられない
一般的に型は静的に扱えるなら静的に扱える方が有利
もう一つ
コンテナも制約を受けるとわかっているならなぜそちらも型パラメータにしないのか?
フィールド 't' だけを型パラメータにしていることを問題視している
195デフォルトの名無しさん
2025/02/22(土) 00:16:39.92ID:2igDN88l >>194
>一般的に型は静的に扱えるなら静的に扱える方が有利
コンパイル時に検査できるものはすればいい
>コンテナも制約を受けるとわかっているならなぜそちらも型パラメータにしないのか?
>フィールド 't' だけを型パラメータにしていることを問題視している
コンテナが制約を受けるのか値が制約を受けるのかは、単に構文と処理系の実装の問題。意味的にはどちらも制約を受ける
変数aの型によって動作が変わる関数を、a.foo()と書く仕様にしようがfoo(a)にしようがどちらでもいいのと同じ
というか「必要性がわからない」なら、首を突っ込まなきゃいいのでは
>一般的に型は静的に扱えるなら静的に扱える方が有利
コンパイル時に検査できるものはすればいい
>コンテナも制約を受けるとわかっているならなぜそちらも型パラメータにしないのか?
>フィールド 't' だけを型パラメータにしていることを問題視している
コンテナが制約を受けるのか値が制約を受けるのかは、単に構文と処理系の実装の問題。意味的にはどちらも制約を受ける
変数aの型によって動作が変わる関数を、a.foo()と書く仕様にしようがfoo(a)にしようがどちらでもいいのと同じ
というか「必要性がわからない」なら、首を突っ込まなきゃいいのでは
196デフォルトの名無しさん
2025/02/22(土) 00:26:40.81ID:2igDN88l >コンテナも制約を受けるとわかっているならなぜそちらも型パラメータにしないのか?
あなたがそうしたけりゃそうすりゃいいだけの話
「集合Gは群であるとする」といっている人に対して、
「群構造は二項演算*、単位元e、逆演算・^(-1)にも依存するのに、なぜ(G, *, e, ・^(-1))と書かないのか」とか言っているようなもん
そう書きたきゃそう書けばいい
俺はめんどくさいからそうしないだけ
あなたがそうしたけりゃそうすりゃいいだけの話
「集合Gは群であるとする」といっている人に対して、
「群構造は二項演算*、単位元e、逆演算・^(-1)にも依存するのに、なぜ(G, *, e, ・^(-1))と書かないのか」とか言っているようなもん
そう書きたきゃそう書けばいい
俺はめんどくさいからそうしないだけ
197デフォルトの名無しさん
2025/02/22(土) 00:28:08.00ID:BHZ6xlR+ バカだから不利となる動的生成しようとしてるのだろう
そのケースは静的で済む
そのケースは静的で済む
198デフォルトの名無しさん
2025/02/22(土) 00:31:03.33ID:2igDN88l199デフォルトの名無しさん
2025/02/22(土) 00:34:02.62ID:2igDN88l 型を動的に生成する、つまり実行時に決まる値に型が依存していても、コンパイル時に検査できる場合はある
ということが分かっていない?
ということが分かっていない?
200デフォルトの名無しさん
2025/02/22(土) 00:36:50.14ID:fju1Vmb5201デフォルトの名無しさん
2025/02/22(土) 00:37:58.92ID:2igDN88l たとえばList nで長さnのリストを表すとする
nが実行時に決まる値だったとしても、関数
concat: List n -> List m -> List (n + m)
の型はコンパイル時にチェックできる
nが実行時に決まる値だったとしても、関数
concat: List n -> List m -> List (n + m)
の型はコンパイル時にチェックできる
202デフォルトの名無しさん
2025/02/22(土) 00:39:25.47ID:2igDN88l203デフォルトの名無しさん
2025/02/22(土) 00:42:20.87ID:fju1Vmb5204デフォルトの名無しさん
2025/02/22(土) 00:45:02.92ID:2igDN88l 正直、あなたの意図がよくわからない
こちらの言っていることが理解できないのか、わざわざこんな辺鄙なスレでよく分からん難癖をつけるのが楽しいのか
こちらの言っていることが理解できないのか、わざわざこんな辺鄙なスレでよく分からん難癖をつけるのが楽しいのか
205デフォルトの名無しさん
2025/02/22(土) 13:49:24.39ID:3Aku5oEk 型を動的に作るなんて、RailsのActiveRecordとかごく一般的に行われていることだと思うが
206デフォルトの名無しさん
2025/02/22(土) 14:03:06.41ID:o5bbno7I207デフォルトの名無しさん
2025/02/22(土) 14:54:10.02ID:H7FLchaf208デフォルトの名無しさん
2025/02/22(土) 15:46:05.77ID:IIYOJqnw 言語のセマンティクスと実装は分けて考えるべき
209デフォルトの名無しさん
2025/02/22(土) 15:57:38.39ID:es3U9V0K >>207
あなたが混同してる
型検査をコンパイル時に行うかどうかは規格、セマンティクスの領分で
実行時の値とされているものを静的にチェックできる範囲でチェックして警告を出したりするのは実装の領分だろう
あなたが混同してる
型検査をコンパイル時に行うかどうかは規格、セマンティクスの領分で
実行時の値とされているものを静的にチェックできる範囲でチェックして警告を出したりするのは実装の領分だろう
210デフォルトの名無しさん
2025/02/22(土) 16:05:21.30ID:W3fSq5/I >>207
その両者は明確に分かれてる
動的型付け言語は実行の途中で初めて型が確定しうる
静的型付け言語は必ず実行前に全ての型が定まる
これらは言語仕様で定まる
静的型付け言語は型の安全性やパフォーマンスに優れている
C/C++, Fortran, Go, Haskell, Java, OCaml, Pascal, Rust, Scala, Swiftなど
スクリプト言語以外は静的型付け言語が多数派
その両者は明確に分かれてる
動的型付け言語は実行の途中で初めて型が確定しうる
静的型付け言語は必ず実行前に全ての型が定まる
これらは言語仕様で定まる
静的型付け言語は型の安全性やパフォーマンスに優れている
C/C++, Fortran, Go, Haskell, Java, OCaml, Pascal, Rust, Scala, Swiftなど
スクリプト言語以外は静的型付け言語が多数派
211デフォルトの名無しさん
2025/02/22(土) 16:35:21.85ID:N/T45y64212デフォルトの名無しさん
2025/02/22(土) 16:51:46.18ID:1JZL08Pv もうブログかなんかに書いててくれないか
213デフォルトの名無しさん
2025/02/22(土) 16:53:22.31ID:W3fSq5/I 静的型付け言語はその言語仕様により
常に全ての型を静的に(=実行前に)確定できる
これは言語仕様により定まることであり実装とは関係ない
常に全ての型を静的に(=実行前に)確定できる
これは言語仕様により定まることであり実装とは関係ない
214デフォルトの名無しさん
2025/02/22(土) 16:54:54.90ID:1JZL08Pv 妄想乙
215デフォルトの名無しさん
2025/02/22(土) 17:46:21.34ID:GOJ2wF4D 実行速度の速い言語がすべて静的型付けな点が答えだろうね
素人向けのスクリプト言語は動的型付けで遅い
素人向けのスクリプト言語は動的型付けで遅い
216デフォルトの名無しさん
2025/02/22(土) 18:03:51.25ID:NU7N7MY+ >>210
しれっとHaskell混ぜるなってのw
しれっとHaskell混ぜるなってのw
217デフォルトの名無しさん
2025/02/22(土) 19:31:02.81ID:wKCHVlKT 馬鹿が常駐して終わったスレ
さよなら
さよなら
218デフォルトの名無しさん
2025/02/22(土) 20:19:25.50ID:FTk8qZlg 無意味な動的型付けにこだわってるのは一人だけだから無視すればよいだけかと
型推論の進歩により静的型付けの唯一の弱点も消えた
型指定を省略できるクロージャなどその典型例
型推論の進歩により静的型付けの唯一の弱点も消えた
型指定を省略できるクロージャなどその典型例
219デフォルトの名無しさん
2025/02/22(土) 22:50:21.56ID:bh0ZAEWN220デフォルトの名無しさん
2025/02/22(土) 22:56:32.72ID:bh0ZAEWN >>187は動的型付けとは何ら関係がない
むしろ、直後に指摘されているようにほとんどのケースでコンパイル前に検査できる
むしろ、直後に指摘されているようにほとんどのケースでコンパイル前に検査できる
221デフォルトの名無しさん
2025/02/23(日) 02:25:36.50ID:tIjZB/Ol 型が第一級オブジェクトの言語は、論理学でいえば命題を量化できる二階述語論理に相当するわけだ
222デフォルトの名無しさん
2025/02/23(日) 03:10:06.06ID:ojjdIlYs f x = 10
g y = 20
h z = 30
h . g . f 10 -- 30
g y = 20
h z = 30
h . g . f 10 -- 30
223デフォルトの名無しさん
2025/02/23(日) 03:10:58.23ID:ojjdIlYs hの定義内で途中の計算結果10, 10, 20を参照するにはどうするか
224デフォルトの名無しさん
2025/02/23(日) 04:40:15.50ID:upqukZrZ トランポリン
225デフォルトの名無しさん
2025/02/23(日) 06:54:06.73ID:jtLYghc/ h z x y = 30にする
226デフォルトの名無しさん
2025/03/09(日) 23:01:10.03ID:eGDnXODc227デフォルトの名無しさん
2025/03/14(金) 17:25:51.81ID:TOg9uiCJ S式
(+ 1 (* 2 3))
RPN
1 2 3 * +
CPS
1 >> (x ->
2 >> (y ->
3 >> (z ->
(y * z) >> (m ->
(x + m))))))
Do記法
x <- 1
y <- 2
z <- 3
m <- y * z
x + m
(+ 1 (* 2 3))
RPN
1 2 3 * +
CPS
1 >> (x ->
2 >> (y ->
3 >> (z ->
(y * z) >> (m ->
(x + m))))))
Do記法
x <- 1
y <- 2
z <- 3
m <- y * z
x + m
228デフォルトの名無しさん
2025/06/17(火) 21:17:24.66ID:66zQf9l5 はぁ? クロージャって何すか?
クローゼットのことですか?
プログラマ「もういい」
クローゼットのことですか?
プログラマ「もういい」
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- とらせん IPあり
- 巨専】
- 【DAZN】ワールドカップ欧州予選総合 ★5
- こいせん 全レス転載禁止
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- トヨタ、反日だった。2027年に中国にレクサスのEV工場を設立。高市 [931948549]
- 日本政府、ネトウヨに媚びるために韓国との関係も悪化させてしまう [603416639]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 【悲報】SP500今日も暴落で完全に世界恐慌。高市恐慌として全世界で語り継がれそう [686538148]
- 自閉症が「んなっしょい」と連呼するお🏡
- FGOで好きなサーヴァントがアビゲイル、北斎、楊貴妃なんだが
