Я пытаюсь исправить простую функцию для сортировки списка, используя сортировку выбора, код Im ниже:
fun slctsrt [] = []
| slctsrt (x::xs) = slctsrt2 (xs, x, []);
fun slctsrt2 ([], min, []) = min
| slctsrt2 ([], min, y::ys) = min :: slctsrt2 (ys, y, [])
| slctsrt2 (x::xs, min, ys) = if x<min then slctsrt2 (xs, x, min::ys)
else slctsrt2 (xs,min,x::ys);
... и возвращает ошибку ниже:
"lctsrt.txt", line 7, characters 32-35:
! | slctsrt2 ([], min, y::ys) = min :: slctsrt2 (ys, y, [])
! ^^^
! Type clash: expression of type
! 'a list
! cannot have type
! 'a
! because of circularity