Soy nuevo en SML y estoy usando el dialecto SMLNJ.Typecasting en SML
Por algún motivo, he intentado convertir 3 a 3.0 (int en real).
No se pudo encontrar una salida. ¿Cómo puedo hacer esto? ¿Cómo puedo convertir entre tipos?
Soy nuevo en SML y estoy usando el dialecto SMLNJ.Typecasting en SML
Por algún motivo, he intentado convertir 3 a 3.0 (int en real).
No se pudo encontrar una salida. ¿Cómo puedo hacer esto? ¿Cómo puedo convertir entre tipos?
Puede utilizar la función real
(o Real.fromInt
) para convertir un int
a un real
.
Para obtener más información, puede ver una lista de funciones disponibles en el entorno de nivel superior here y una descripción general de la biblioteca de bases here.
Genial, creo que esto es profundo;). int y real es de 2 tipos diferentes y SML no convierte de tipo 'int' a 'real'. – suhao399
SML no tiene typecasts. Cualquier mapeo entre tipos debe hacerse a través de funciones.
real(3)
se ve y se comporta de forma parecida a un tipocast de tipo C, pero real: int -> real
es simplemente otra función estándar. int(3.0)
, por otro lado, no funciona, porque la función int
no existe.
En general, cuando necesite convertir entre tipos, simplemente buscará en la biblioteca una función apropiada. En el caso real -> int
, simplemente buscando "real -> int" en el top level environment aparece round
, trunc
, floor
y ceil
.
No importa, encontré la respuesta. Simplemente escriba 'real (2)' por ejemplo, para convertir 2 (int) a 2.0 (real). – Dave