Sono nuovo su SML e sto usando il dialetto SMLNJ.Typecasting in SML
Per qualche scopo ho cercato di digitare 3 a 3.0 (int a reale).
Impossibile trovare una via d'uscita. Come posso fare questo? Come posso convertire tra i tipi?
Sono nuovo su SML e sto usando il dialetto SMLNJ.Typecasting in SML
Per qualche scopo ho cercato di digitare 3 a 3.0 (int a reale).
Impossibile trovare una via d'uscita. Come posso fare questo? Come posso convertire tra i tipi?
È possibile utilizzare la funzione real
(o Real.fromInt
) per convertire un int
ad un real
.
Per ulteriori informazioni è possibile visualizzare un elenco di funzioni disponibili nell'ambiente di livello superiore here e una panoramica della libreria di base here.
Grande, penso che questo sia profondo;). int e real sono di 2 tipi diversi e SML non converte da type 'int' a 'real'. – suhao399
SML non ha digitazioni. Qualsiasi mappatura tra tipi deve essere eseguita attraverso le funzioni.
real(3)
sembra e si comporta in modo simile a un typecast in stile C, ma real: int -> real
è solo un'altra funzione nella base standard. int(3.0)
, d'altra parte, non funziona, perché la funzione int
non esiste.
In generale, quando è necessario eseguire la conversione da un tipo all'altro, basta scavare nella libreria per una funzione appropriata. Nel caso real -> int
, la ricerca di "reale -> int" nello top level environment restituisce round
, trunc
, floor
e ceil
.
Non importa, ho trovato la risposta. Basta digitare 'reale (2)' per esempio, per convertire 2 (int) in 2.0 (reale). – Dave