Ruby 初心者スレッド Part 55
■ このスレッドは過去ログ倉庫に格納されています
0185173
2014/07/31(木) 21:59:08.98ID:h0+6R2oIまず「JavaScriptに整数型は仕様上ない」という指摘は正しい
(ボケへの的確なツッコミが嬉しい)
ただし、それ以外の部分はメチャクチャだね
> 演算子を適用した結果の型がどうなるかは演算子の仕様の問題に過ぎず
> 型付けの強い弱いは関係ない
演算子(= 関数 or メソッド)の適用結果のデータ型が曖昧である事を許容する言語は、
曖昧なデータ型を禁止する言語と比較して「型付けが弱い」と呼ばれる
たとえばC言語では戻り値が「ある(オブジェクトへのポインタ) または NULL」という仕様の
関数定義を許すけど、ML や Haskell のような型付けに厳格な言語では型エラーとして
定義できず、代わりに直和型(ML ならOption型、Haskell ならばMaybe型)を使う
この対比のケースだと、C は ML や Haskell よりも「型付けが弱い」となる
つまり、データ型に関する仕様の曖昧さを認めるか否かという言語の設計方針は、
「型付けの強さ弱さ」を決める要因の一つである、ってこと
> 演算の自動リフトや型変換なんてC系の言語では普通にあることで
そういった「暗黙の型変換(implicit conversion)」あるいは「型強制(coercion)」と
呼ばれる仕掛けはプログラミングを楽にする効果がある一方で、
その多用は型検査の能力を阻害する悪影響がある
だから、それらを許可しない型付けに厳格な言語との対比として、
C言語系は「型付けが弱い」と呼ばれる
■ このスレッドは過去ログ倉庫に格納されています