len は配列も受け付けますよ。 式の評価で、値だけでなく型も付随しているんだと思う。 VB で言えば variant 型みたいな。 演算子や関数は型を見て処理を分岐させる。 例えば乗算演算子 * は文字列も数値も受け付けますよね。 そのほうが実装は楽なような気がします。 実行時にいちいち型を判定しなければならないから、 コンパイル時に型を決定しておくよりも実行速度は犠牲になります。