gpt4 book ai didi

sml - 如何强制 SML 中的类型(如转换)

转载 作者:行者123 更新时间:2023-12-04 19:59:27 25 4
gpt4 key购买 nike

我正在创建 Rationals (int * int) 的结构,我的功能之一是:

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。当我尝试将 : int * int 添加到 diff 声明的末尾时,它给我一个类型错误,表达式 real * realint * int 不匹配。

如何强制整数除法,或将表达式转换为整数?如果两者都可以,哪个更好?

最佳答案

是的,您使用了错误的运算符。 / 是浮点除法运算符。 div(如 D.Shawley 所述)是整数除法运算符。 div 在这种情况下是正确的选择,因为您要除以两个整数并希望得到一个整数。

关于sml - 如何强制 SML 中的类型(如转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com