(* Напишите функцию number_in_month, которая принимает список дат и месяца (т. Е. Int) и возвращает количество дат в списке за данный месяц. *)
fun number_in_month(datelist : (int*int*int) list, month : int) =
if null(tl (datelist))
then if #2(hd (datelist)) = month then 1 else 0
else if #2(hd (datelist)) = month
then 1 + number_in_month(tl datelist, month)
else number_in_month(tl datelist, month)
( * Напишите функцию number_in_months, которая принимает список дат и список месяцев (т.е. список int) и возвращает количество дат в списке дат, которые находятся в любом из месяцев в списке месяцев. Предположим, список число месяцев не повторяется. Подсказка: используйте ваш ответ на предыдущую задачу. *)
fun number_in_months(datelist : (int*int*int) list, monthlist : int list)
if null(tl (monthlist))
then number_in_month(datelist, hd monthlist)
else number_in_month(datelist, hd monthlist)
+ number_in_months(datelist, tl monthlist)
Вторая функция выдает мне эту ошибку, когда я пытаюсь ее скомпилировать:
hw1.sml:42.5 Error: syntax error: inserting EQUALOP
[unexpected exception: Compile]
uncaught exception Compile [Compile: "syntax error"]
raised at: ../compiler/Parse/main/smlfile.sml:19.24-19.46
../compiler/TopLevel/interact/evalloop.sml:45.54
../compiler/TopLevel/interact/evalloop.sml:306.20-306.23
../compiler/TopLevel/interact/interact.sml:65.13-65.16