我想知道人們如何處理SML/NJ編譯器中的非窮舉匹配警告。例如,我可以定義一個數據類型SML/NJ未完成匹配
datatype DT = FOO of int | BAR of string
,然後讓我知道一個功能只FOOS
fun baz (FOO n) = n + 1
編譯器會給出警告
stdIn:1.5-1.24 Warning: match nonexhaustive FOO n => ... val baz = fn : DT -> int
我不希望看到針對我完成的不完整匹配的警告,因爲之後我必須掃描輸出以查找可能實際上是錯誤的警告。我可以寫這樣的功能
fun baz (FOO n) = n + 1
| baz _ = raise Fail "baz"
但這會使代碼雜亂無章。人們通常在這種情況下做什麼?
你能否提供一些關於如何更改編譯器標誌的信息? – 2014-02-06 00:15:51