我試圖通過一個數據類型,SET,包含其他數據類型,包括本身,並打印出使用循環函數,循環這些數據類型。sml列表[tycon不匹配]操作數和運算符不同意
fun printEXP(SET(hd::tl::[])) =
let
fun loop (hd::tl) = printEXP(hd):: loop tl | loop [] = [];
in() end;
...
我得到tycon不匹配錯誤,我不知道如何解決它。我在循環函數中做了什麼錯誤?
operator domain: EXP list
operand: EXP
其中
datatype EXP = SET of EXP list;
您的錯誤在第3行,更具體地說是'printEXP(hd)'。這是因爲'hd'的類型是EXP,你的函數需要一個'EXP list'。 – rshah