這樣做配套:模式與雷亞爾(標準ML)
fun test a 0.0 = "good"
| test a b = "bad";
導致一個錯誤,但如果我更改了0.0錯誤消失。然而,我需要匹配0.0,我想知道是否以及如何完成。
這樣做配套:模式與雷亞爾(標準ML)
fun test a 0.0 = "good"
| test a b = "bad";
導致一個錯誤,但如果我更改了0.0錯誤消失。然而,我需要匹配0.0,我想知道是否以及如何完成。
假設這是因爲真實不是SML 97中的eqtype:http://www.smlnj.org/doc/Conversion/types.html#Real-equality
您可以使用if語句而不是模式匹配。
請注意,浮點運算容易出現舍入誤差,所以您應該檢查b的絕對值是否小於某個delta,而不是它等於0.0。我假設這正是爲什麼不允許模式匹配實數。