Suz*_*ioc -1 ocaml operator-overloading cartesian-product
我仍然不明白动机.
为什么他们分别为整数和浮点数乘法制作了两个不同的运算符(*和*.),就好像它们害怕超载一样,但同时它们曾经*用来表示类型的笛卡尔积?
type a = int * int ;;
Run Code Online (Sandbox Code Playgroud)
为什么他们突然变得如此勇敢?为什么不写
type a = int *.. int ;;
Run Code Online (Sandbox Code Playgroud)
或者其他的东西?
是否存在一些关系,这使得笛卡尔积更接近整数乘积并且更远离浮动乘积?
它没有超载,在你的右侧type t =定义了另一种概念,你定义的是一种类型,而不是一种价值.
在类似ML的语言中,您可以看到两种不同的语言:
由于两种语言的领域是真正分开的,因此在重复使用每种语言中的类似句法结构时没有理论上的问题/模糊性,因此与重载完全无关.