2 つのリストを 1 つに圧縮する SML 関数を定義しようとしました。
fun zip(vs:string list, ps:int list) : string*int list =
case (vs,ps) of
(v::vv,p::pp) => (v,p) :: zip(vv,pp)
| _ => []
しかし、それはそのようなエラーを報告します:
stdIn:3.20-3.39 Error: operator and operand don't agree [tycon mismatch]
operator domain: (string * int) * (string * int) list
operand: (string * int) * (string * int list)
in expression:
(v,p) :: zip (vv,pp)
エラーが理解できず、関数のどこが間違っているのかわかりません。
修正方法は?