私はこの課題でいくつかの問題を抱えています。教授が求めているのは次のようなものです。
日付のリストを受け取り、オプションとして評価される 関数Oldest
(int*int*int)
を作成します。リストに日付がない場合は NONE と評価され、日付 d がリスト内で最も古い日付である場合は SOME d と評価されます。
関数の作成方法と日付のリストの操作方法については知っていますが、最も古い値を「保存」して日付のリストの末尾と比較する方法がわかりません。これは私が提出したものです(機能しません。常に最初の日付を取得しますが、答えを知りたいです)
fun oldest (datelist : (int * int * int) list) =
if null datelist
then NONE
else if null (tl datelist) then
SOME (hd datelist)
else let val date = if is_older (hd datelist, hd (tl datelist)) then SOME (hd datelist) else SOME (hd (tl datelist))
in oldest(tl datelist)
end