動的言語には1種類の型しかない

1
K. Sakaguchi @pi8027

そういえば最近気がついたんですが、動的型付けの言語って実は型が1つしか無くて、型コンストラクタが無数にあるような感じなんですよね。それはもう実行時エラーとか一杯出てもおかしくないし、どこがおかしいのか分からない。型がいっぱい作れる Haskell さんとかゆとりに決まってますよ。

2010-03-25 09:40:18
K. Sakaguchi @pi8027

もう Ruby とか怖くて使えないじゃないですか...。

2010-03-25 09:41:05
@_kineko

@pi8027 phpはそのあたり意味不明なことしてくれるよね intと文字列とnullとemptyがごちゃごちゃw

2010-03-25 09:53:35
K. Sakaguchi @pi8027

@_kineko いいえ。そもそも型が1つしか無いんですよ。それが数値だとか Bool だとかそういう区別は型コンストラクタによって為されます。たぶんそんな感じ...

2010-03-25 09:55:22
K. Sakaguchi @pi8027

@_kineko すみませんデータコンストラクタの間違いでした。

2010-03-25 09:57:32
@_kineko

@pi8027 ???C言語触ってるならそれ普通じゃね? 全部void型でポインタひゃっほうでプログラムを組む感じ?

2010-03-25 09:58:03
K. Sakaguchi @pi8027

@_kineko それはちがいますね。それは単なる多相型です。

2010-03-25 09:59:10
K. Sakaguchi @pi8027

@_kineko Haskell やれば話通じると思うので Haskell やりましょう。話はそれからだ!!!! というのはどうですか

2010-03-25 09:59:41
@_kineko

@pi8027 じゃあバリアント型(だっけ?)はデータを代入する瞬間に型を決めてるんちゃうの?

2010-03-25 10:01:31
K. Sakaguchi @pi8027

@_kineko すみませんどれに対する返事か良く分からないです。まあバリアント型とかなんの事か良く分からないんですが、つまり動的型付けだとバリアント型しか無いとか多分そういう事になるんじゃないでしょうか...

2010-03-25 10:04:41
@_kineko

@pi8027 なんだろう、アセンブラレベルで考えるとどこに問題があるのかわからないから、Javaレベルのくそっぷりなのだろう…とか勝手に解釈

2010-03-25 10:05:20
@_kineko

@pi8027 あー、それじゃ動的型付けって動的に型を生成してるとか?

2010-03-25 10:06:43
K. Sakaguchi @pi8027

@_kineko Haskeller 的な解釈では、動的型付けは1つしか型が存在せず、型コンストラクタが大量にあるような型システムに見えます。

2010-03-25 10:07:53
@_kineko

想像してみてずいぶんインテリジェンスな型だな・・・動的型生成

2010-03-25 10:08:11
@_kineko

@pi8027 その説明だと最初からバリアント型かvoid型のポインタです って言ってるように見える…

2010-03-25 10:09:21
@_kineko

アセンブラにおいては初めから型なんてねーよ なので、でっていう程度なんだけど… Java的な意味合いで、ポインタ見せネーヨだったらなんか納得します。

2010-03-25 10:11:52
K. Sakaguchi @pi8027

@_kineko え、アセンブラは型あるじゃないですか。型クラス無いしすごい制約ばっかりですよね...そもそもリスト構造作る所から大変ですし

2010-03-25 10:13:42
K. Sakaguchi @pi8027

ぼくはポインタの話なんてしてません...

2010-03-25 10:14:08
@_kineko

@pi8027 アセンブラは型あるじゃないですか... んー? バイト長は指定できるけど指定できるだけで型は無いぞ? ジェネリクスで言うList<String> のStringが曖昧って言いたいの??

2010-03-25 10:17:59
K. Sakaguchi @pi8027

@_kineko すみません何の話してるのか分からないです。アセンブラはすごいプリミティブな部分だけですが命令単位で型ありますよね。これは4byte の加算だみたいな。

2010-03-25 10:19:41
K. Sakaguchi @pi8027

まあそもそもそんな物はアーキテクチャ特有の話ですがががが。はい。

2010-03-25 10:21:53
@_kineko

@pi8027 それは型じゃなくてCPUの命令で使われるバイト長

2010-03-25 10:22:54
K. Sakaguchi @pi8027

@_kineko いいえでもそれは型ですよ。型ってそういう事じゃないですか。これは数値だとかどれくらいのサイズだとか。

2010-03-25 10:24:04
K. Sakaguchi @pi8027

まあ数値だというのはあまり関係無いですね。文字とか区別されないし。

2010-03-25 10:24:38
@_kineko

@pi8027 それ否定したらプログラム言語全否定になるしね…

2010-03-25 10:24:53