我正在使用 SML 进行编程作业。其中一个功能要求我将使用的整数三元组列表( (int * int * int) list )返回给其他列表。该函数对日期和月份进行排序以查看它们是否一致,如果一致,则将其添加到列表中。这是代码。
fun dates_in_month (dates : (int * int * int) list, month : int) =
if null dates
then []
else
if #2 (hd dates) = month
then (hd dates) :: dates_in_month(tl dates, month)
else dates_in_month(tl dates, month)
fun dates_in_months (dates : (int * int * int) list, months : int list) =
if null months orelse null dates
then []
else
dates_in_month(dates, hd months) ::
dates_in_months(dates, tl months)
使用此代码可以达到一定程度,但是该函数返回一个 (int * int * int) 列表列表,而不是 (int * int * int) 列表。我认为问题出在
then []
声明上。任何帮助,将不胜感激。