2
我想檢查,如果在列表中的所有產品都超過限度莫斯科ML模式匹配
fun search([], _) = true
| search(x1::xs, limit) = #2(#1 x1) > limit andalso search(xs, limit)`
,我收到unresolve記錄圖形。我的功能有什麼問題。
我想檢查,如果在列表中的所有產品都超過限度莫斯科ML模式匹配
fun search([], _) = true
| search(x1::xs, limit) = #2(#1 x1) > limit andalso search(xs, limit)`
,我收到unresolve記錄圖形。我的功能有什麼問題。
函數的問題很可能是您使用#1
和#2
,它們分別用於從給定的元組中提取第一個和第二個組件。這應該爲任何工作元組,即,對,三,四等,例如,
> #1 (1, 2);
val it = 1: int
和
> #1 ("a", "b", "c", "d");
val it = "a": string
在你的函數,編譯器(或解釋)不能找出元組x1
應該有多少個組件。
您可以通過給一個明確的類型註釋像
或(可能更好)幫助明確拆開模式
fun search ([], _) = true
| search (((_, x), _)::xs, l) = x > l andalso search (xs, l);
裏面的元組
x