Я чрезвычайно новичок в sml. Я не могу понять, что не так для этой простой обратной функции, которую я пытаюсь написать.Ошибка типа в стандартной функции обратной связи ML
fun reverse [] = [] |
reverse (v1::rest) = (reverse(tl(rest)) @ v1)
Это выход, когда я пытаюсь запустить обратное ([1, 2, 3]);
poly: : error: Type error in function application.
Function: reverse : 'a list list -> 'a list
Argument: ([1, 2, 3]) : int list
Reason:
Can't unify int (*In Basis*) with 'a list (*In Basis*)
(Different type constructors)
Found near reverse ([1, 2, 3])
Static Errors
Я вижу, что это ошибка типа. Похоже, что обратное ищет 2 списка (я думаю .. «список списка кажется мне странным типом)? Есть ли проблема с настройкой шаблона/параметров? Спасибо за помощь.
Теперь я вижу, что вместо @ у меня должно быть ::, но я все равно получаю аналогичную ошибку. – Nick