我創建的有理數(INT * INT)的結構及我的功能之一是:如何SML(如鑄件)強迫型
fun diff ((n, d), (n', d')) = let val (top, bot) = sum ((n, d), (~n', d'))
in
(top/gcd(top, bot), bot/gcd(top, bot))
end
GCD給了我最大的共同點,所以我不會以2/8結束,而應該是1/4。 gcd使用mod來查找gcd,所以它返回一個int。但是我不能將表達式與分隔符一起鍵入爲int。當我嘗試在diff聲明的末尾添加: int * int
時,它給了我一個表達式real * real和int * int不匹配的類型錯誤。
如何強制整數除法或將表達式轉換爲整數?如果兩者都可能,哪一個更好?