私は SML でプログラミングの割り当てを行っています。関数の 1 つは、int の 3 つのタプル ( (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 []
。どんな助けでも大歓迎です。