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