Functional programming 与reals的模式匹配(标准ML)

Functional programming 与reals的模式匹配(标准ML),functional-programming,sml,smlnj,Functional Programming,Sml,Smlnj,这样做: fun test a 0.0 = "good" | test a b = "bad"; 结果是一个错误,但是如果我更改0.0,错误就会消失。但是,我需要匹配0.0,我想知道这是否以及如何实现。您可以使用if语句而不是模式匹配 请注意,浮点运算容易出现舍入错误,因此您应该检查b的绝对值是否小于某些增量,而不是它是否等于0.0。我想这正是不允许模式匹配实数的原因。您可以使用if语句而不是模式匹配 请注意,浮点运算容易出现舍入错误,因此您应该检查b的绝对值是否小于某些增量,而不是它是否

这样做:

fun test a 0.0 = "good"
  | test a b = "bad";

结果是一个错误,但是如果我更改0.0,错误就会消失。但是,我需要匹配0.0,我想知道这是否以及如何实现。

您可以使用if语句而不是模式匹配


请注意,浮点运算容易出现舍入错误,因此您应该检查b的绝对值是否小于某些增量,而不是它是否等于0.0。我想这正是不允许模式匹配实数的原因。

您可以使用if语句而不是模式匹配


请注意,浮点运算容易出现舍入错误,因此您应该检查b的绝对值是否小于某些增量,而不是它是否等于0.0。我想这正是不允许模式匹配real的原因。

可能是因为real在SML 97中不是eqtype:

可能是因为real在SML 97中不是eqtype: