1
나는 입력으로 3 개의 원소를 취하고 가장 작은 것에서 가장 큰 것으로 분류 된 정렬 된 목록을 반환하는 표준 ml 함수를 만들려고한다. 나에게 최소, 최대 및 중간 요소를 가져 오는 3 가지 도우미 메서드를 사용했습니다. 의 int를 처리 할 때표준 ml 정렬 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)::[];
다음은 완벽하게 작동하지만, 내가 실수로 변경하는 경우, 헬퍼 방법이 올바른 결과를 반환하지만 (다음이다 정렬 방법을 입력 할 때 나는 오류 : 코드는 다음과 같습니다
어떤 코드에서 잘못 될 수 : 난 스크린 샷을)했다, 그래서 오류 텍스트를 복사 couldnt는? 감사합니다또한 여기에 게시 된 방법 이외의 3 가지 요소를 정렬하는 또 다른 방법이 있습니까?
도우미 메서드로 각 요소를 반환하고 @ 연산자로 연결 한 경우 그 결과를 목록으로 알 수 있습니까? –
@ aizen92 이미 목록을 반환한다는 것을 알고 있습니다. 문제는 당신이'fun sort3 (a, b, c) : 진짜 ' – sepp2k
을 작성할 때 진짜를 반환해야한다고 명시 적으로 말했지만, 나는 진짜로 돌아가고 싶다. 나는이 방법을 진짜로 만 만들고 싶다. –