入力として 3 つの要素を取り、最小から最大の順に並べ替えられた並べ替えられたリストを返す標準の ml 関数を作成しようとしています。min、max、および mid 要素を取得する 3 つのヘルパー メソッドを使用しました。コードは以下のとおりです。
- fun min3 (a, b, c):real =
if a < b andalso a < c then a
else if b < a andalso b < c then b
else c;
- fun mid3 (a, b, c):real =
if (a < b andalso a > c) orelse (a > b andalso a < c) then a
else if (b < a andalso b > c) orelse (b > a andalso b < c) then b
else c;
- fun max3 (a, b, c):real =
if a > b andalso a > c then a
else if b > a andalso b > c then b
else c;
- fun sort3 (a, b, c):real =
min3(a, b, c)::mid3(a, b, c)::max3(a, b, c)::[];
以下はintを扱うときに完全に機能しましたが、それらを実数に変更すると、ヘルパーメソッドは正しい結果を返しましたが、次のソートメソッドを入力するとエラーが発生しました(エラーテキストをコピーできなかったため、スクリーンショットを撮りました) :
コードで何が間違っている可能性がありますか? ありがとう
また、ここに投稿した方法以外に 3 つの要素を並べ替える別の方法はありますか?