SML에 처음 입어서 함수 분할을 쓰고 싶습니다. int list -> int list * int list
목록이 있습니다. 정수는 두 개의 정수 목록을 만듭니다. 하나는 음수가 아닌 항목을 포함하고 다른 하나는 음수 항목을 포함합니다.목록을 두 개의 목록으로 나눠서 첫 번째 항목에 양수 항목이 있고 두 번째 항목에 양수 목록이없는 항목 - SML
fun splitup (xs :int list) =
if null xs
then ([],[])
else if hd xs < 0
then hd xs :: #1 splitup(tl xs)
else hd xs :: #2 splitup(tl xs)
여기 내가 얻을 경고입니다 : 다음은 내 코드입니다
ERROR : operator and operand don't agree
ERROR : types of if branches do not agree
기능 splitup (TL의 XS)가 int list * int list
그래서 난 내 재귀 모든 권리해야한다고 생각 반환해야합니다. 무엇이 문제이며 어떻게 해결할 수 있습니까?
내 재귀 목록의 마지막에 온다,이 목록의 쌍과'# 1 splitup (XS)를 반환 '해야 목록. 왜':: # 1 쌍의 목록 '이 잘못 될까요? – DennngP
@DennngP 그것은 한 쌍의 목록으로되어 있기 때문에 잘못되었습니다. 메시지에서 말한 것처럼 조건부의 두 가지 분기는 동일한 유형이어야합니다. – molbdnilo