Я пытаюсь написать функцию QuickSort типаQuicksort в SML оператор и операнд не согласен ошибка
'a list * ('a * 'a -> bool) -> 'a list
, но по какой-то причине, я получаю:
'a list -> ('a * 'a -> bool) -> 'a list
Вот мой код для функции:
fun quicksort xs f = let
fun qs [] = []
| qs [x] = [x]
| qs (p::xs) = let
val (less, more) = List.partition (fn x => f (x, p)) xs
in
qs less @ p :: qs more
end
in
qs xs
end
Когда я вызываю функцию я получаю эту ошибку:
stdIn:73.1-73.18 Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z list
operand: int list * (int * int -> bool)
in expression:
quicksort (L, op <)
Я понимаю, что я должен передавать его неправильно, но я просто не вижу своей ошибки. Итак, мой вопрос заключается в том, что происходит здесь, когда я получаю эту ошибку при попытке передать мой список и оператор?
Это вызывает эту ошибку: Ошибка: оператор и операнд не согласны [roundity] – Griffin
Я проверю и отредактировал сообщение позже – coder
Хорошо, спасибо! :) – Griffin