如果有人能指導我這裏,我將不勝感激,我真的很想理解我做錯了什麼,爲什麼?sml中的foldl操作
這是我的代碼:
fun get_longest xs = foldl((fn (x ,y) => if String.size x >= String.size y then x
else y),[],xs)
我的功能應採取一個字符串列表,並返回最長的字符串;如果列表是空的,只需return []
。
但我發現了這個錯誤:
Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z * 'Y -> 'Y
operand: (string * string -> string) * int * 'X
in expression:
foldl ((fn (<pat>,<pat>) => if <exp> then <exp> else <exp>),0,xs)
uncaught exception Error
raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:296.17-296.20