fun min [] = [] | min (h::t) = if h < (min t) then h else (min t)
위의 이유는 무엇입니까? 도와주세요! 감사합니다.정수 목록에서 가장 작은 값을 찾는 방법은 무엇입니까?
오류 메시지 : 빈 목록의 경우
stdIn:1.37 Error: overloaded variable not defined at type
symbol: <
type: 'Z list
fun min [] = [] | min (h::t) = if h < (min t) then h else (min t)
위의 이유는 무엇입니까? 도와주세요! 감사합니다.정수 목록에서 가장 작은 값을 찾는 방법은 무엇입니까?
오류 메시지 : 빈 목록의 경우
stdIn:1.37 Error: overloaded variable not defined at type
symbol: <
type: 'Z list
, 당신은 유형이 같은 h
또는 min t
같은 요소의 종류와 호환되지 않는 빈 목록을 반환합니다.
몇 가지 수정 :
Empty
.그래서 함수의 골격은 다음과 같습니다
fun min [] = raise Empty
| min [x] = ...
| min (x::xs) = ...
이 경우 옵션 유형을 활용하는 것이 더있을 수 있습니다. 예외를 처리 할 필요가 없지만이 함수를 호출 할 때마다 NONE 경우를 적절히 처리해야합니다.
fun smallest [] = NONE
| smallest (x::xs) = case smallest xs of
NONE => SOME x
| SOME y => if x < y
then SOME x
else SOME y
무엇이 오류입니까? –
@RB. 'stdIn : 1.37 오류 : 오버로드 된 변수가 기호로 정의되지 않았습니다. 기호 : < 유형 : 'Z list' 죄송합니다. 여기에 줄 바꿈이없는 이유를 모르십니까? – sc1013
죄송합니다. – sc1013