2

私は ML プログラミングの初心者です。2 つの日付を取り、true または false に評価される関数 is_older を作成する宿題があります。最初の引数が 2 番目の引数よりも前の日付である場合、true と評価されます。
(2 つの日付が同じ場合、結果は false になります。)

val is_older = fn : (int * int * int) * (int * int * int) -> bool // Binding Like

これを試しました(ニュージャージーコマンドプロンプトのSMLを使用)

fun is_older((y1,m1,d1),(y2,m2,d2))= if (y1<y2) then true 
else if (y1=y2 andalso m1<m2) then true 
else if (y1=y2 andalso m1=m2 andalso d1<d2) then true;

エラーが発生します

Error syntax error: deleting SEMICOLON ID 
4

2 に答える 2

5

最後ifに - がありません。これelseは SML の構文エラーです。

于 2013-01-22T17:22:30.917 に答える
2
fun is_older((y1 : int,m1 : int,d1 : int),(y2 : int, m2 : int, d2 : int))=
if y1 < y2 
then true 
else 
     if y1 = y2 andalso m1 < m2 
 then true 
 else 
      if y1 = y2 andalso m1 = m2 andalso d1 < d2
      then true 
      else false;
于 2013-01-30T13:41:26.257 に答える