【发布时间】:2020-08-22 20:29:54
【问题描述】:
我是 SML 的新手,我正在尝试从 SML/NJ 的 github 运行一些代码。我目前正在尝试调用该函数
fun dates_in_month(xs : (int * int * int) list, n : int) =
if null xs then
[]
else if #2 (hd xs) = n then
(hd xs)::dates_in_month(tl xs, n)
else
dates_in_month(tl xs, n)
像这样
dates_in_month(3::2::1::nil, 5)
但我在 SML/NJ 110.97 上收到以下错误消息
stdIn:8.1-8.31 Error: operator and operand do not agree [overload - bad instantiation]
operator domain: (int * int * int) list * int
operand: 'Z[INT] list * 'Y[INT]
in expression:
dates_in_month (3 :: 2 :: <exp> :: <exp>, 5)
【问题讨论】: