-1

やる気がまだわかりません。

なぜ彼らは、整数と浮動小数点数をそれぞれ乗算するために、オーバーロードを恐れているかのように2つの異なる演算子(**.)を作成しましたが、同時に*、タイプのデカルト積を表すために使用しましたか?

type a = int * int ;;

なぜ突然彼らはとても勇敢になったのですか?書いてみませんか

type a = int *.. int ;;

か何か?

デカルト積を整数積に近づけ、フロート積から遠ざける関係はありますか?

4

2 に答える 2

9

オーバーロードされていません。右側では、type t =別の種類の概念を定義しています。値ではなく、型を定義しています。

MLのような言語では、2つの異なる言語を見ることができます。

  1. タイプを定義できるタイプの言語(値の構造の仕様)。
  2. 値を定義できる値の言語(タイプに対応する実際の値、関数も値です)。それが評価されます。

2つの言語のドメインは実際には分離されているため、各言語で同様の構文構造を再利用することに理論上の問題やあいまいさはなく、したがってオーバーロードとはまったく関係ありません。

于 2013-01-22T11:37:27.213 に答える
1

数学では、乗算文字を使用してデカルト積に注意します。したがって、OCamlでも同じように注意するのは論理的です...

于 2013-01-22T09:56:28.527 に答える