Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pattern matching with reals (Standard ML)

Doing this:

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

results in an error, but if I change the 0.0 the error goes away. However, I need to match 0.0 and I'm wondering if and how that can be accomplished.

like image 731
LDK Avatar asked Jan 22 '26 00:01

LDK


1 Answers

You can just use an if-statement instead of pattern-matching.

Note that floating point arithmetic is prone to rounding errors, so you should check that the absolute value of b is smaller than some delta rather than that it's equal to 0.0. I assume that's exactly why pattern matching reals is not allowed.

like image 137
sepp2k Avatar answered Jan 25 '26 06:01

sepp2k



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!