微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在sml中将函数的参数从int转换为real?

如何解决如何在sml中将函数的参数从int转换为real?

这是我用sml写的计算调和和的代码。我基本上想计算实数 至于整数,都将评估为 0(没有任何用处)。但是这段代码出错了。

试验 1:

  if y<x then 0
  else f(x,y-1)+ 1/y;

错误

Elaboration Failed: Type clash. Functions of type "real * real → real" cannot take an argument of type "int * int": Cannot merge "int" and "real".

试验 2:

  if y<x then 0
  else f(real(x),y-1)+ 1/y;

错误

Elaboration Failed: "real" is not a constructor.

即使用 0.0 替换 0 也没有用。请帮忙。

解决方法

我得到了问题的答案。 我们基本上需要使用

 if y<x then 0.0
  else f(x,y-1)+ 1.0/real(y);

因为我们函数的类型是 (int*int)->real

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。