Closures vs Objects (228レス)
1-

1: 2024/02/19(月)20:39 ID:VT95BnI9(1/2) AAS
It is well-known that closures and objects are equivalent. So are actors. Which one is the most fundamental?

よく知られたように、クロージャとオブジェクトは等価です。アクターも同様です。どの概念が最も基本的なのでしょうか?
199: 02/22(土)00:34 ID:2igDN88l(4/7) AAS
型を動的に生成する、つまり実行時に決まる値に型が依存していても、コンパイル時に検査できる場合はある

ということが分かっていない?
200
(1): 02/22(土)00:36 ID:fju1Vmb5(1/2) AAS
>>195
収容するコンテナ型Cと一意となるフィールドの型Fの二つの型パラメータを持つ型となるため、
CとFの両方が必要ですね。
CもFも様々な型を取り得るため、
二つとも必須となります。
201
(2): 02/22(土)00:37 ID:2igDN88l(5/7) AAS
たとえばList nで長さnのリストを表すとする
nが実行時に決まる値だったとしても、関数
concat: List n -> List m -> List (n + m)
の型はコンパイル時にチェックできる
202: 02/22(土)00:39 ID:2igDN88l(6/7) AAS
>>200
うん
だから、そう書きたきゃそう書けばいいじゃん
203: 02/22(土)00:42 ID:fju1Vmb5(2/2) AAS
>>201
いずれもList型なので、
そのケースは静的に型が定まっていますね。
204: 02/22(土)00:45 ID:2igDN88l(7/7) AAS
正直、あなたの意図がよくわからない
こちらの言っていることが理解できないのか、わざわざこんな辺鄙なスレでよく分からん難癖をつけるのが楽しいのか
205
(1): 02/22(土)13:49 ID:3Aku5oEk(1) AAS
型を動的に作るなんて、RailsのActiveRecordとかごく一般的に行われていることだと思うが
206
(1): 02/22(土)14:03 ID:o5bbno7I(1) AAS
>>205
それはRubyがスクリプト言語に過ぎなくて動的型付け言語だからだよ
まともな普通の言語は静的型付け言語なのでActiveRecordのようなO/Rマッピングも静的型付け
207
(3): 02/22(土)14:54 ID:H7FLchaf(1) AAS
>>206
そもそも動的型付け言語・静的型付け言語なんてものはない。
型検査をコンパイル時に行うかどうかは、処理系の実装方法に過ぎない。
また、型が実行時の値に依存していても、コンパイル時に検査することは可能(>>201

あなたは前提知識が足りてなさすぎる
208: 02/22(土)15:46 ID:IIYOJqnw(1) AAS
言語のセマンティクスと実装は分けて考えるべき
209
(1): 02/22(土)15:57 ID:es3U9V0K(1) AAS
>>207
あなたが混同してる
型検査をコンパイル時に行うかどうかは規格、セマンティクスの領分で
実行時の値とされているものを静的にチェックできる範囲でチェックして警告を出したりするのは実装の領分だろう
210
(1): 02/22(土)16:05 ID:W3fSq5/I(1/2) AAS
>>207
その両者は明確に分かれてる
動的型付け言語は実行の途中で初めて型が確定しうる
静的型付け言語は必ず実行前に全ての型が定まる
これらは言語仕様で定まる

静的型付け言語は型の安全性やパフォーマンスに優れている
C/C++, Fortran, Go, Haskell, Java, OCaml, Pascal, Rust, Scala, Swiftなど
スクリプト言語以外は静的型付け言語が多数派
211: 02/22(土)16:35 ID:N/T45y64(1) AAS
>>209
>型検査をコンパイル時に行うかどうかは規格、セマンティクスの領分で
>実行時の値とされているものを静的にチェックできる範囲でチェックして警告を出したりするのは実装の領分だろう
>>207はまさにそう言っているのだが
212: 02/22(土)16:51 ID:1JZL08Pv(1/2) AAS
もうブログかなんかに書いててくれないか
213: 02/22(土)16:53 ID:W3fSq5/I(2/2) AAS
静的型付け言語はその言語仕様により
常に全ての型を静的に(=実行前に)確定できる
これは言語仕様により定まることであり実装とは関係ない
214: 02/22(土)16:54 ID:1JZL08Pv(2/2) AAS
妄想乙
215: 02/22(土)17:46 ID:GOJ2wF4D(1) AAS
実行速度の速い言語がすべて静的型付けな点が答えだろうね
素人向けのスクリプト言語は動的型付けで遅い
216: 02/22(土)18:03 ID:NU7N7MY+(1) AAS
>>210
しれっとHaskell混ぜるなってのw
217: 02/22(土)19:31 ID:wKCHVlKT(1) AAS
馬鹿が常駐して終わったスレ
さよなら
218
(1): 02/22(土)20:19 ID:FTk8qZlg(1) AAS
無意味な動的型付けにこだわってるのは一人だけだから無視すればよいだけかと
型推論の進歩により静的型付けの唯一の弱点も消えた
型指定を省略できるクロージャなどその典型例
219: 02/22(土)22:50 ID:bh0ZAEWN(1/2) AAS
>>218
> 動的型付けに拘ってる
書かれていることを正しく読もう
220: 02/22(土)22:56 ID:bh0ZAEWN(2/2) AAS
>>187は動的型付けとは何ら関係がない
むしろ、直後に指摘されているようにほとんどのケースでコンパイル前に検査できる
221: 02/23(日)02:25 ID:tIjZB/Ol(1) AAS
型が第一級オブジェクトの言語は、論理学でいえば命題を量化できる二階述語論理に相当するわけだ
222: 02/23(日)03:10 ID:ojjdIlYs(1/2) AAS
f x = 10
g y = 20
h z = 30
h . g . f 10 -- 30
223
(1): 02/23(日)03:10 ID:ojjdIlYs(2/2) AAS
hの定義内で途中の計算結果10, 10, 20を参照するにはどうするか
224: 02/23(日)04:40 ID:upqukZrZ(1) AAS
トランポリン
225: 02/23(日)06:54 ID:jtLYghc/(1) AAS
h z x y = 30にする
226: 03/09(日)23:01 ID:eGDnXODc(1) AAS
>>223
途中を参照したいなら関数の返り値を複数にして返していく
途中を表示したいなら関数を副作用アリにする
227: 03/14(金)17:25 ID:TOg9uiCJ(1) AAS
S式
(+ 1 (* 2 3))

RPN
1 2 3 * +

CPS
1 >> (x ->
2 >> (y ->
3 >> (z ->
(y * z) >> (m ->
(x + m))))))
省6
228: 06/17(火)21:17 ID:66zQf9l5(1) AAS
はぁ? クロージャって何すか?
クローゼットのことですか?

プログラマ「もういい」
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.226s*